FlexiRes Admin -portaali — Käyttöohje

Kenelle: admin-portaalin (Next.js-hallintapaneelin) käyttäjälle — varausten, palveluiden ja asetusten päivittäinen hallinta. WordPress-puolen ohje (shortcodet + WP-hallinta): flexires-wp/includes/USER_GUIDE.md. Käyttöönoton vaiheittainen ohje: flexires-backend/USER_GUIDE.md.

Tämä opas kattaa FlexiRes-hallintapaneelin päivittäisen käytön. Paneeliin kirjaudutaan sähköpostilla, salasanalla ja TOTP-koodilla (Google Authenticator tai Authy).


1. Kirjautuminen ja 2FA

  1. Siirry paneelin osoitteeseen (esim. https://flexires-admin.cr.datait.fi).
  2. Syötä kirjautumistiedot:
  3. Paina Kirjaudu sisään.
  4. Syötä 6-numeroinen koodi autentikaattorisovelluksesta (Google Authenticator tai Authy) → Vahvista.

Ensimmäinen kirjautuminen: Sinut ohjataan automaattisesti TOTP-asennussivulle. Skannaa QR-koodi autentikaattorisovelluksella ja syötä koodi vahvistukseksi. Tämän jälkeen 2FA on aktiivinen kaikilla seuraavilla kirjautumisilla.


2. Uuden tenantin käyttöönotto — oikea järjestys

Ennen kuin varauskalenteri toimii asiakkaalle, on asetettava rakenne oikeassa järjestyksessä. Alla kuvataan riippuvuudet ja suositeltu järjestys.

Yritysprofiili
    └── Sijainti (missä palvelu tapahtuu)
            └── Resurssi (kuka tai mikä toteuttaa palvelun, sidotaan sijaintiin)
                    └── Aukioloajat (milloin resurssi on varattavissa)
                            └── Palvelu (mitä asiakas varaa, käyttää resurssia)
                                    └── Lomat / Estot (poikkeukset aukioloaikoihin)

Vaihe 1 — Yritysprofiili

Asetukset → Yritysprofiili

Täytä vähintään:


Vaihe 2 — Sijainnit

Hallinta → Sijainnit

Sijainti kuvaa fyysistä paikkaa, jossa palvelu toteutuu. Se on pakollinen osa rakennetta — resurssit ja varaukset sidotaan aina sijaintiin.

Esimerkki: Yksi toimipiste → yksi sijainti. Useita toimipisteitä → yksi sijainti per toimipiste.


Vaihe 3 — Resurssit

Hallinta → Resurssit

Resurssi on se henkilö, tila tai väline, joka toteuttaa palvelun. Resurssi sidotaan sijaintiin.

TyyppiKäyttötilanne
StaffHenkilö, esim. hieroja tai ohjaaja
RoomTila, esim. sauna tai neuvotteluhuone
VehicleAjoneuvo, esim. vuokra-auto
EquipmentVäline tai laite

Tärkeät kentät:

Huom: Resurssia ei voi luoda ennen sijaintia — varmista siis vaihe 2 ensin.


Vaihe 4 — Aukioloajat

Hallinta → Aukioloajat

Aukioloajat määräävät milloin resurssi on varattavissa. Ne ovat resurssikohtaisia — jokaiselle resurssille voidaan asettaa omat ajat.

Huom: Ilman aukioloaikoja resurssi ei näy asiakkaalle varauskalenterissa.


Vaihe 5 — Palvelut

Hallinta → Palvelut

Palvelu on se, mitä asiakas varaa. Se käyttää resurssia ja sen varattavuus perustuu resurssiin asetettuihin aukioloaikoihin.

Perustiedot:

KenttäSelitys
NimiPalvelun nimi, näkyy asiakkaalle
Kesto (min)Varauksen kesto minuutteina
Hinta (€)Normaali hinta
Min. osallistujatMinimimäärä per varaus (oletus 1)
Maks. osallistujatEnimmäismäärä per varaus (tyhjä = ei rajaa)
Min. vahvistukseenKynnysosallistujamäärä ennakkovarauksille (0 = aina suoraan vahvistettu)
Ennakkohinta (€)Alennettu hinta, kun kynnys ei ole vielä täyttynyt
VäriPalvelun tunnisteväri kalenterissa
KuvausVapaaehtoinen lisätieto

No-show-politiikka:

VaihtoehtoSelitys
NoneEi seurauksia no-show'sta
Fixed feeKiinteä maksu (€), jonka itse määrität
Full chargeKoko varauksen hinta

Maksu ei perity automaattisesti — se näytetään adminille no-show-merkinnän yhteydessä.

Ennakkovarauskynnys (Auto-Confirm Threshold):

Kenttä Min. vahvistukseen määrää kuinka monta osallistujaa täytyy olla varattuna ennen kuin palvelu vahvistetaan automaattisesti.

ArvoKäyttäytyminen
0Varaus vahvistetaan aina välittömästi — vahvistussähköposti lähtee heti
> 0Varaus jää pending_threshold-tilaan kunnes yhteisosallistujamäärä ylittää kynnyksen

Kun kynnys on asetettu (> 0):

Esimerkki: Ryhmäjumppa vaatii vähintään 5 osallistujaa. Aseta Min. vahvistukseen = 5 ja Ennakkohinta = 15 € (normaali 20 €). Ensimmäiset varaajat maksavat 15 € ja odottavat vahvistusta. Kun viides henkilö varaa, kaikki vahvistetaan automaattisesti normaalihintaan 20 €.

Ennakkovarausajat:

KenttäSelitys
Ennakkovarausaika (min)Vähimmäisaika ennen vuoroa — asiakas ei voi varata lähempää kuin tämä
Ensimmäisen varauksen ennakkoaika (min)Pidempi ennakkoaika, kun kyseisellä kalenteripäivällä ei ole vielä yhtään aiempaa varausta

Näiden kahden kentän logiikka (Ankkurivaraus / Anchor Booking):

Esimerkki: Hieroja haluaa tietää edellisenä päivänä, onko huominen työpäivä. Aseta Ennakkovarausaika = 60 min ja Ensimmäisen varauksen ennakkoaika = 1440 min (24 h). Tyhjälle huomiselle päivälle ei voi varata aikaa aamulla klo 8. Mutta jos joku on varannut ajan klo 10:00 jo eilen, päivän myöhemmät vapaat ajat (klo 11:30, 13:00 jne.) ovat varattavissa 60 minuutin varoitusajalla!

Muut asetukset:

Riippuvuusyhteenveto: Palvelu tarvitsee resurssin → resurssi tarvitsee sijainnin → sijainti tarvitsee aukioloajat. Jos jokin näistä puuttuu, palvelu ei näy asiakkaalle.


Vaihe 6 — Lomat ja estot (poikkeukset)

Hallinta → Lomat ja Hallinta → Estot

Nämä ovat poikkeuksia normaaleihin aukioloaikoihin.

Lomat — kokonaiset vapaapäivät tai lomakauden sulkemiset:

Estot — yksittäiset aikavälit, esim. palaveri tai huolto:

Esimerkki: Jouluviikko suljetaan lomana koko viikolle. Tiistain palaveri lisätään estoksi klo 10–12.


Tarkistuslista ennen julkaisua

Käy läpi ennen kuin varauskalenteri julkaistaan asiakkaille:


3. Dashboard — Yleiskatsaus

Dashboard on paneelin etusivu. Se antaa nopean tilannearvion päivän töistä.

Tilastokortit (yläreunassa):

KorttiSelitys
Vahvistetut varauksetKaikki confirmed-tilassa olevat varaukset
Odottavat toimenpiteetPending-varaukset — keltainen jos niitä on
TänäänTänään alkavat varaukset
JonolistausAktiivisten jonosijojen määrä

Alla näytetään tänään alkavat ajat, vahvistusta odottavat varaukset (max 8), viimeisimmät varaukset ja palveluyhteenveto. Kaikista listoista pääsee suoraan vastaavalle sivulle "Show all"- tai "Manage"-linkeistä.


4. Varaukset

Varaukset-sivu on päivittäisen työn keskus. Täältä hallitaan kaikkia asiakasvarauksia.

Hakeminen ja suodatus

Sivun yläreunassa on neljä suodatinta:

Aktiivisista suodattimista ilmestyy "Tyhjennä suodattimet" -painike.

Varauksen tila -värikoodit

VäriTilaSelitys
KeltainenOdottava (Pending)Asiakas varannut, admin ei vahvistanut
OranssiEnnakkovarausOdottaa kynnysosallistujamäärän täyttymistä
VihreäVahvistettuVaraus vahvistettu
SininenValmisTapahtuma on ohi
HarmaaNo-showAsiakas ei saapunut
PunainenPeruttuVaraus peruttu

Toiminnot yksittäiselle varaukselle

Klikkaa taulukkorivistä avataksesi varauksen tiedot. Modaalissa näkyy asiakkaan yhteystiedot, palvelu, aika, osallistujamäärä ja maksettu hinta.

Vahvista varaus — vahvistaa odottavan varauksen ja lähettää asiakkaalle vahvistussähköpostin.

Merkitse no-show — merkitsee vahvistetun varauksen no-show'ksi. Järjestelmä laskee palvelun no-show-politiikan mukaisen maksun ja näyttää sen sinulle. Veloitus tapahtuu manuaalisesti — järjestelmä ei peri summaa automaattisesti.

Peru varaus — peruuttaa varauksen. Toiminto vaatii vahvistuksen.

Joukkotoiminnot ja viestien lähetys osallistujille (Broadcast)

Varauslistalla voit valita useamman varauksen valintaruuduilla (checkbox) ja suorittaa joukkotoimintoja:

Kilpailu- ja ryhmätapahtumien osallistujalistalla (Event Roster) voit lisäksi suodattaa osallistujat luokan tai lisätietokentän arvon mukaan ja lähettää viestin vain kyseiselle ryhmälle.


4b. Kalenterit — Viikko- ja resurssikalenteri

Admin-portaalin kalenterit tarjoavat reaaliaikaisen, visuaalisen tilannekuvan toimipisteen varauksista ja resurssien käyttöasteesta.

Pääkalenteri (/calendar) ja näkymävalitsin

Pääkalenterin yläpalkissa on tilavalitsin, jolla voi vaihtaa kahden eri näkymän välillä:

NäkymäKäyttötilanne
📅 ViikkonäkymäNäyttää kuluvan viikon päivät (Ma–Su) rinnakkain. Päällekkäiset varaukset eri kentillä asettuvat automaattisesti rinnakkaisille kaistoille.
👥 Resurssit (päivä)Näyttää valitun päivän kaikki kentät/resurssit omina sarakkeinaan. Erinomainen päivittäiseen kenttänhallintaan ja tiskityöhön.

Luo varaus suoraan kalenterista (Click-to-Create)

Uuden varauksen luonti onnistuu suoraan kalenteriruudukosta:

  1. Klikkaa vapaata aikaväliä haluamasi tunnin tai puolituntisen kohdalta ruudukossa.
  2. Esiin aukeaa Uusi varaus -lomake, jossa:
  3. Täytä asiakastiedot ja paina Luo varaus. Varaus ilmestyy välittömästi kalenteriin.
  4. Voit luoda varauksen myös yläpalkin + Uusi varaus -painikkeesta.

Sivupaneeli ja nopeat toimenpiteet

Klikkaamalla mitä tahansa varauslohkoa ruudukossa aukeaa oikeaan laitaan Varauksen tiedot -sivupaneeli, josta voit hallinnoida varausta poistumatta kalenterista:

Estetyt ajat ja huollot (BlockedTime)

Jos kenttä tai resurssi on suljettu huollon, seuran vuoron tai muun syyn vuoksi:

Pikatauko (Quick Break) ja kalenterin pikaesto

Päivittäisessä työssä tarvitaan usein nopeaa tapaa sulkea kalenterista lyhyt väli (esim. kahvi- tai lounastauko, siirtymä, huolto tai loppupäivän sulkeminen). FlexiRes tarjoaa tähän kaksi salamannopeaa tapaa:

  1. Yläpalkin "+ Pikatauko" -painike:
  1. Pikavalikko suoraan kalenteriruudukosta (Slot Action):

Pikahaku ja suodattimet

Pikanäppäimet (Keyboard Shortcuts)

Kalenterin käyttöä voi nopeuttaa näppäimistöllä:

NäppäinToiminto
THyppää kuluvaan päivään (Today)
WVaihda viikkonäkymään (Week)
DVaihda resurssipäivänäkymään (Day)
← / →Siirry edelliseen / seuraavaan aikajaksoon
EscSulje avoinna oleva sivupaneeli tai varauslomake

5. Palvelut

Katso tarkempi kuvaus kohdasta Vaihe 5 — Palvelut.

Palvelun muokkaaminen ja poistaminen

Palvelutaulukossa on jokaisen rivin kohdalla Edit- ja Delete-linkit. Poisto vaatii vahvistuksen.

Palvelulomakkeen välilehdet

Palvelun asetukset on jaettu neljälle välilehdelle. Välilehden vaihto ei tyhjennä täyttämättömiä kenttiä, ja Tallenna toimii miltä tahansa välilehdeltä. Jos pakollinen kenttä on täyttämättä toisella välilehdellä, lomake vaihtaa siihen ja näyttää virheen.

VälilehtiSisältö
PerustiedotVaraustapa, nimi, kesto, osallistujamäärät, väri, kuvaus, aktiivisuus, ennakkovarausrajat, maksu, jonotus
HinnoitteluPerushinta ja hinnan yksikkö (/ varaus, / tunti, / henkilö, / kappale), kausihinnoittelu, hintaportaat ja hinnan esikatselu
PeruutusNo-show-käytäntö, peruutusaikarajat, peruutusmaksutasot, peruutusehtojen teksti
LomakeVarauksen lisäkentät ja asiakasviestit

Uusi palvelu: kausihinnat, hintaportaat ja esikatselu ovat käytettävissä vasta tallennuksen jälkeen. Kun uusi palvelu tallennetaan, lomake avautuu uudelleen Hinnoittelu-välilehdelle, jotta ne voi lisätä heti perään.

Hinnan esikatselu

Hinnoittelu-välilehden alalaidassa näkyy Hinnan esikatselu: valitse ajankohta, kesto (tai vuokrauksessa vuorokaudet), osallistujamäärä ja hintaporras, niin erittely näyttää hinnan vaihe vaiheelta — perushinta, kausihinta (säännön nimi), tapahtumahinta, yksikkö ja hintaporras — sekä lopullisen hinnan. Vaiheet, jotka eivät vaikuta hintaan, näytetään viivalla. Laskenta on täsmälleen sama kuin asiakkaan varauksessa, joten esikatselun hinta vastaa veloitusta. Esikatselun virhe ei estä lomakkeen tallennusta.


5b. Kilpailutapahtuma — luontivelho

Sivupalkki → Kilpailutapahtuma (🏁)

Kilpailun, kurssin tai muun kiinteän ajankohdan tapahtuman perustaminen käsin vaatisi useamman erillisen työvaiheen: palvelun luonti, resurssin ja sijainnin linkitys, saatavuuden asetus ja ilmoittautumiskenttien määrittely. Velho tekee ne yhtenä ohjattuna kulkuna, ja joko kaikki onnistuu tai mitään ei jää puolitiehen.

Kuusi vaihetta

#VaiheSisältö
1KilpailuUusi kilpailu vai uusi ajankohta olemassa olevaan kilpailupalveluun
2Ajankohta ja paikkaPäivä, alku- ja loppuaika, sijainti, resurssi
3OsallistujatVähimmäis- ja enimmäismäärä, toteutumiskynnys, jonotuslista
4HinnoitteluTapahtuman hinta ja ilmoittautumisikkuna
5IlmoittautumiskentätValmispohjat ja omat kentät
6YhteenvetoTarkistus ja luonti

Olemassa olevalla palvelulla vaihe 3 ohitetaan — osallistujarajat ovat palvelutason asetuksia ja periytyvät sellaisenaan. Vaihe 4 näytetään aina, koska hinta on tapahtumakohtainen; silloin se näyttää myös palvelun nykyisen hinnan vertailuarvona.

Resurssin valinta — tärkein yksittäinen valinta

Kilpailussa resurssit ovat usein kokonaan eri kuin arjessa, ja tämä valinta ratkaisee toimiiko ilmoittautuminen lainkaan.

Luo kilpailulle oma resurssi, kun kilpailu varaa radan tai tilan kokonaan. Tämä on useimmiten oikea valinta: oma resurssi sallii samanaikaiset ilmoittautumiset automaattisesti, saa antamasi kapasiteetin, eikä peri mitään muuta aikataulua — kilpailusivulla näkyy vain tämä kilpailu.

Käytä olemassa olevaa resurssia, kun kilpailu on osa normaalia toimintaa. Velho tarkistaa silloin kaksi asiaa ja tarjoaa korjausta painikkeella:

VaroitusMitä se tarkoittaa
Yksi ilmoittautuminen täyttäisi kilpailunResurssille ei ole sallittu samanaikaisia varauksia. Ensimmäinen ilmoittautuja sulkee ajan muilta riippumatta osallistujarajoista.
Kapasiteetti ei riitäResurssin kapasiteetti on pienempi kuin osallistujien enimmäismäärä. Kapasiteetti ratkaisee.

⚠️ Osallistujarajat eivät yksin riitä. Vaiheen 3 rajat ohjaavat kilpailun toteutumista ja yhden ilmoittautumisen kokoa. Yhtäaikaisten ilmoittautujien määrää ohjaa resurssin kapasiteetti — ja vain jos resurssille on sallittu samanaikaiset varaukset. Korjauspainikkeet muuttavat jaettua resurssia, joten ne vaikuttavat myös muihin sitä käyttäviin palveluihin.

Normaalin käytön estäminen kilpailun ajaksi

Vaiheessa 2 voit valita resurssit, joiden normaali varaaminen estetään kilpailun ajaksi. Tyypillinen tilanne: kilpailulle oma resurssi, ja radan normaali resurssi estetään samaksi ajaksi.

Esto ei peru jo tehtyjä varauksia. Jos estettävällä resurssilla on varauksia kyseiseen aikaan, velho listaa ne asiakkaineen — käsittele ne varausnäkymässä ennen kilpailun julkaisua.

Eston kesto valitaan samassa kohdassa:

Velhon varoitukset noudattavat valittua kestoa. Jos vaihdat koko päivän estoon, listaan ilmestyvät myös kilpailun ulkopuoliset saman päivän varaukset — juuri ne, jotka esto sulkisi.

Jos kilpailu käyttää normaalia resurssia, velho varoittaa. Resurssia ei voi estää itseltään, joten normaali varaaminen jää auki kilpailun ajaksi: asiakkaat voivat varata radan kilpailun päälle, eikä viikkokalenterissa näy kilpailusta mitään — se näyttää vain varaukset ja estot. Varoitus tulee vain silloin kun resurssin aukioloaika oikeasti kattaa kilpailun ajan. Ratkaisu on luoda kilpailulle oma resurssi ja estää normaali resurssi.

Jos valitulla resurssilla on jo toinen kilpailu samaan aikaan, velho kertoo siitä mutta sallii etenemisen: kaksi luokkaa samaan aikaan samalla radalla voi olla tarkoituksellista, kunhan kapasiteetti riittää molemmille yhteensä.

Tapahtumakohtainen hinnoittelu

Sama palvelu voi laskuttaa eri ajankohdista eri hinnan. Esimerkki: kausicupin osakilpailut maksavat 40 €, finaali 80 €. Molemmat ovat samaa palvelua, joten ne näkyvät samassa varauslistassa ja tilastoissa — toisin kuin jos finaalille luotaisiin oma palvelunsa.

Hinnoittelutiloja on kaksi:

TilaToiminta
Sama hinta kaikilleTapahtuman hinta ratkaisee.
Alempi hinta ennen varmistumistaIlmoittautujat maksavat alemman hinnan niin kauan kuin osallistujia on alle toteutumiskynnyksen. Vaatii kynnysarvon — ilman sitä alempi hinta ei koskaan aktivoituisi, ja velho estää etenemisen.

Hinnan muokkaus jälkikäteen: avaa tapahtuma varauslistalta tai kalenterista ja käytä tapahtumanäkymän hintakenttiä. Tyhjä kenttä tarkoittaa "peri hinta palvelulta" — nolla taas tarkoittaa ilmaista tapahtumaa, ja ne ovat eri asioita. Jo tehtyjen varausten hinta ei muutu takautuvasti.

Ilmoittautumiskentät

Vaihe 5 tarjoaa viisi valmispohjaa: kilpailulisenssin numero, luokka/sarja, seura/tiimi, kilpailunumero ja syntymävuosi. Omia kenttiä voi lisätä vapaasti. Kentät koskevat vain tätä ajankohtaa eivätkä muuta palvelun muita tapahtumia.

Ne näkyvät asiakkaan ilmoittautumislomakkeella ja osallistujalistan CSV-viennissä.

Lopputulos

Yhteenvedossa saat valmiin [flexires_event]-shortcoden kopiointinapilla sekä linkin tämän palvelun varauslistaan. Liitä shortcode WordPress-sivulle, niin ilmoittautuminen on auki.

Sama velho on WordPress-lisäosassa (FlexiRes → Kilpailutapahtuma), ja se luo WP-sivun automaattisesti. Molemmat velhot tuottavat identtiset tapahtumat, joten voit käyttää kumpaa tahansa.


5c. Hintaportaat (esim. Jäsen / Ei-jäsen)

Palvelulle voi määrittää useita asiakkaan itse valittavissa olevia hintoja — tyypillisesti jäsen- ja ei-jäsenhinnan, mutta portaita voi olla useampi ja ne voi nimetä vapaasti.

Hallinta: avaa palvelu (Palvelut → muokkaa) ja etsi Hintaportaat-osio. Klikkaa + Lisää porras ja täytä:

KenttäSelitys
NimiPortaan nimi, näkyy asiakkaalle valitsimessa (esim. "Jäsen", "Ei-jäsen")
MuutostyyppiMuutos euroina (±€), muutos prosentteina (±%) tai kiinteä hinta (€)
MuutosarvoMuutostyypeillä etumerkillinen luku: -10 vähentää 10 €, +5 lisää 5 € (sama logiikka prosenteille). Kiinteällä hinnalla portaan lopullinen hinta, esim. 20
OletusYksi porras voidaan merkitä oletukseksi — se on asiakkaalle esivalittuna

Muutostyyppinen porras (±€, ±%) muokkaa palvelun perushintaa, ei korvaa sitä — se pätee myös kausi- ja tapahtumahinnan päälle. Kiinteähintainen porras sen sijaan korvaa hinnan ja ohittaa kausi- ja tapahtumahinnan: "Jäsen 20 €" on aina 20 €. Tuntihintaisella palvelulla kiinteä hinta on tuntihinta (20 €/h × 3 h = 60 €). Etumerkillinen muutosarvo antaa valita kumman suunnan ajattelutavan haluat: perushinta voi olla jäsenhinta, johon ei-jäsenille lisätään korotus (+), tai yleishinta, josta jäsenille vähennetään alennus (-). Käyttöliittymä näyttää molemmille tavoille suoraan lasketun euromäärän, joten prosentteja ei tarvitse laskea käsin.

Ei jäsenyyden todentamista. Asiakas valitsee portaan itse varauslomakkeella — järjestelmä ei tarkista oikeutta valittuun hintaan, joten tämä perustuu luottamukseen.

Portaat eivät ole käytössä vuokrapalveluissa (Rental-palvelut) — vain aikaslottipohjaisissa palveluissa.

Portaaton palvelu ei näytä valitsinta lainkaan asiakkaalle — varauslomake toimii kuten ennenkin. Kun portaita on, valitsin näkyy WordPress-sivustolla varauslomakkeessa, viikkokalenterissa, seuraava vapaa -näkymässä ja tapahtumailmoittautumisessa; valittu porras tallentuu varaukseen ja näkyy varausvahvistuksessa.


5d. Hajanaisten varausten ja "reikäpäivien" hallinta (Hieronta-, hoito- ja vastaanottopalvelut)

Yksinyrittäjän ja vastaanottotyön (kuten hierojat, fysioterapeutit, kosmetologit, parturi-kampaajat ja valmentajat) suurin arkinen haaste on aikojen pirstaloituminen pitkin päivää ja turha päivystäminen toimipisteellä.

Tyypillisiä ongelmatilanteita ovat:

  1. Yksittäinen varaus tyhjälle päivälle: Kalenteri on täysin tyhjä huomiselle, mutta asiakas tekee klo 11:00 varauksen klo 8:00 aamulla. Yrittäjä joutuu lähtemään toimipisteelle vain yhden 45 minuutin hoidon vuoksi.
  2. Reikäpäivä (hajanaiset varaukset): Yksi asiakas varaa klo 09:00 ja toinen klo 16:00. Väliin jää 6 tuntia tyhjää odottelua, jolloin yrittäjä on sidottu työpaikalle ilman laskutettavaa työtä.
  3. Viime hetken peruutus tyhjältä päivältä: Päivän ainoa asiakas peruuttaa vuoronsa 30 minuuttia ennen aloitusta.

FlexiRes tarjoaa kuusi toisiaan tukevaa työkalua, joilla voit hallita kalenterin täyttymistä tiiviisti ja estää turhat tyhjät odotusajat:


1. Ankkurivarauslogiikka (Ensimmäisen varauksen ennakkoaika)

Tämä on tehokkain automaattinen suoja yksittäisiä herätevarauksia vastaan.

Miten ankkuri toimii kalenteripäiväkohtaisesti:

Ammattilaisen vinkki — Oma aamuankkuri: Jos tiedät meneväsi toimipisteelle huomenna tekemään paperitöitä tai huoltoa klo 09:00–10:00 ja haluat ottaa vastaan asiakkaita loppupäiväksi lyhyelläkin varoitusajalla: luo kalenteriin aamuksi este tai hallinnollinen varaus ("Työpäivän aloitus"). Tämä toimii päivän ankkurina, ja asiakkaat pääsevät varaamaan klo 10:00 jälkeisiä aikoja tunnin varoitusajalla!


2. Aukioloaikojen lohkominen ja yhtenäiset vuorot

Älä aseta kalenteria auki klo 08:00–21:00 jokaisena viikonpäivänä, ellei sinulla ole aikomusta istua toimipisteellä koko päivää.


3. Varausten käsivahvistus (Vaatii hyväksynnän)

Jos haluat 100 % hallinnan siitä, mihin kohtiin päivää varaukset sijoittuvat:


4. Pikatauot ja reaaliaikaiset kalenterin estot

Kun päivä alkaa täyttyä, voit estää hajanaisten aikojen syntymisen salamannopeasti suoraan kalenterista:


5. Puskuriajat (Buffer Times)


6. Tiukat peruutussäännöt ja No-show-kulut


5e. Toimialakohtaiset käyttövaihtoehdot ja malliratkaisut (Use Cases & Blueprints)

FlexiRes soveltuu monille eri toimialoille. Alla on esitelty kuusi yleisintä käyttömallia ja niiden optimaaliset konfiguraatiot.


Malli 1: Hieronta-, hoito- ja kauneudenhoitopalvelut (Yksinyrittäjät & Vastaanotot)

Sopii: Hierojat, fysioterapeutit, osteopaatit, kosmetologit, parturi-kampaajat, psykoterapeutit, valmentajat.

Osa-alueSuositeltu määritysPerustelu
ResurssiTyyppi: Staff (Työntekijä / Yrittäjä), Kapasiteetti: 1, Rinnakkaiset varaukset: EiVain yksi asiakas kerrallaan. Sidotaan hoitohuoneeseen tai toimipisteeseen.
AukioloajatTiiviit työvuorot (esim. ma–to 09–16, pe 09–14). Lounastauko 12–13 suojattu kahdella aukiolorivillä.Estää pirstaleiset työpäivät.
PalvelutEsim. "Klassinen hieronta 60 min" (65 €), "Urheiluhieronta 90 min" (90 €).Kesto vastaa hoitoaikaa.
EnnakkoajatEnnakkovarausaika: 60 min, Ensimmäisen varauksen ennakkoaika: 1440 min (24 h).Tyhjä huominen ei yllätä; jos päivällä on jo varaus, lisäajat aukeavat tunnissa.
PuskuriajatPuskuriaika jälkeen: 15 min.Hoitopöydän siivous, tuuletus ja asiakasmuistiinpanojen kirjaus.
LisäkentätTyyppi: multiselect / text: "Terveydentila / allergiat", "Oirealueet".Esitiedot valmiina ennen kuin asiakas astuu ovesta sisään.
MaksutavatTiskimaksu (käteinen/kortti), Liikuntaedut (Epassi, Smartum, Edenred) paikan päällä TVL 69 § mukaan, tai lahjakortit.Helppo kuitata Z-raportille.
LisämyyntiAdd-on: "Lämpöhoito / Kinesioteippaus" (+15 €), "Hoitava linimentti kotiin" (+12 €).Kasvattaa keskiostosta.

Malli 2: Padel-, tennis- ja sulkapallohallit sekä tilavuokraus

Sopii: Padel-kentät, tennishallit, kuntosalin yksityistilat, saunatilat, bändikämpät, valokuvausstudiot.

Osa-alueSuositeltu määritysPerustelu
ResurssiTyyppi: Room (Kenttä 1, Kenttä 2, Saunatila), Kapasiteetti: 4 (tai tilan maksimi), Rinnakkaiset varaukset: Ei.Koko kenttä varataan yhdelle ryhmälle.
AukioloajatLaajat aukiolot (esim. ma–su 06:00–23:00).Tila tuottaa aamusta iltaan itsepalveluna.
Palvelut"Padel-kenttävuoro 60 min" (32 €), "Padel-kenttävuoro 90 min" (48 €).Kesto ja hintaportaat (päivä vs. prime time).
HinnoitteluKausi- ja viikkohinnoittelu: Arkipäivä klo 06–15 (24 €), Prime Time arkisin 16–21 ja viikonloput (36 €).Kysynnän mukainen dynaaminen tuotto.
ÄlylukotShelly Cloud / Yale Doorman / PIN-koodilukko linkitetty resurssiin.PIN-koodi luodaan automaattisesti ja toimitetaan sähköpostissa. Ovi aukeaa 15 min ennen vuoroa.
MaksutavatVerkkomaksu pakollinen (payment_required: true, Stripe / Paytrail / Klarna).Ei haamuvarauksia, rahat tilille ennen vuoron alkua.
LisämyyntiLisävarusteet (Add-ons): "Vuokramaila" (+4 €/kpl, quantity max 4), "Pallotuubi" (+7 €).Asiakas saa vuokravälineet kätevästi varauksen yhteydessä.

Malli 3: Ryhmäliikunta, jooga, kurssit ja elämysretket

Sopii: Joogatunnit, spinning, crossfit-tunnit, melontaretket, ruoanlaittokurssit, maistatukset.

Osa-alueSuositeltu määritysPerustelu
ResurssiTyyppi: Room (Salitila) tai Staff (Ohjaaja), Kapasiteetti: esim. 16, Rinnakkaiset varaukset: Kyllä.Useat itsenäiset asiakkaat varaavat paikkoja samaan yhteiseen tuntiin.
Palvelut"Aamujooga 60 min", "Pilates alkeiskurssi".Jokainen osallistuja varaa oman paikkansa.
VahvistuskynnysMin. vahvistukseen: esim. 4, Kynnyksen deadline (vrk): 1 (24 h ennen).Tunti toteutuu vain, jos osallistujia on vähintään 4. Jos ei täyty, varaukset peruuntuvat automaattisesti ilman tappiota.
EnnakkohintaEnnakkohinta: esim. 12 € (normaalihinta 18 €).Early Bird -alennus houkuttelee ensimmäiset 4 varaajaa nopeasti varmistamaan ryhmän.
JonotuslistaJonolistaus käytössä: Kyllä, Varausikkuna: 120 min.Jos joku peruu, jonossa ensimmäinen saa välittömästi ilmoituksen ja linkin varata vapautuneen paikan.
WordPress-esitysLyhytkoodi: [flexires_booking layout="grid"] tai [flexires_week_calendar].Selkeä viikko-ohjelma, josta näkyy vapaat paikat ryhmiin.

Malli 4: Päivä- ja vuorokausivuokraus (Mökit, autot, paljut, koneet)

Sopii: Lomamökit, vuokra-autot, veneet, mobiilisaunat, kylpytynnyrit, tekstiilipesurit, halkomakoneet.

Osa-alueSuositeltu määritysPerustelu
VaraustapaPäivävuokraus (rental) (booking_mode = "rental").Asiakas valitsee päivämäärävälin (saapumispäivä – lähtöpäivä) kellonaikojen sijaan.
Check-in / Check-outCheck-in: 15:00, Check-out: 12:00.Jättää 3 tuntia väliä siivoukselle ja tarkastukselle ennen seuraavaa vuokraajaa.
Vuokra-ajatMin. vuokrapäivät: 2 (viikonloput) tai 1, Max. vuokrapäivät: esim. 14.Estää kannattamattomat yhden yön viikonloppuvaraukset sesonkina.
Kausihinnoittelu"Juhannus & Heinäkuu" 180 €/vrk, "Syksy & Talvi" 110 €/vrk.Hinnat päivittyvät automaattisesti kalenteripäivän mukaan.
LisäpalvelutAdd-on: "Loppusiivous" (+95 €), "Liinavaatesetti" (+15 €/hlö), "Paljun täyttö ja lämmitys" (+80 €).Suuri osa vuokraustoiminnan katteesta tulee lisäpalveluista.
WordPress-esitysLyhytkoodi: [flexires_rental service_slug="hirsimokki"].Päivämäärähaarukkavalitsin ja yökohtainen hintalaskuri.

Malli 5: Kilpailutapahtumat ja turnaukset

Sopii: Karting-kilpailut, frisbeegolf-viikkokisat, koiranäyttelyt, esport-turnaukset.

Osa-alueSuositeltu määritysPerustelu
LuontityökaluSivupalkki → Kilpailutapahtuma (🏁 luontivelho).Luo yhdellä prosessilla palvelun, aikaslotit, lisäkentät ja sulkee normaalin käytön.
Resurssitapa"Sulje normaali resurssi kilpailun ajaksi" (luo BlockedTime-eston radalle/kentälle).Tavalliset asiakkaat eivät voi varata kenttää kisalähtöjen päälle.
Ilmoittautumiskentät"Sarja / Luokka" (select), "Kilpailunumero" (number), "Lisenssinumero" (text), "Transponderi" (text).Kilpailunjohtaja saa valmiin osallistujalistan ja tiedot kilpailujärjestelmään.
TapahtumahinnoitteluOsallistumismaksu esim. 45 €/kuljettaja, katsomolippu 10 €.Poikkeaa normaaleista ratamaksuista.
WordPress-esitysLyhytkoodi: [flexires_event service_slug="syyskisa-2026"].Suora ilmoittautumiskortti ilman kalenterin selausta.

Malli 6: Monitoimipisteinen ketju ja jaetut asiantuntijat

Sopii: Useammalla paikkakunnalla toimivat lääkäri-, terapia- tai katsastusasemat, kiertävät hierojat.

Osa-alueSuositeltu määritysPerustelu
SijainnitHallinta → Sijainnit: Luo jokaiselle toimipisteelle oma sijainti (esim. Helsinki, Tampere, Turku).Asiakas näkee tarkan katuosoitteen ja saapumisohjeet.
SynonyymitAutomaattinen kaupunkien tunnistus (Hki → Helsinki, Tre → Tampere, Åbo → Turku).Hakemisto ja suodatus toimivat riippumatta kirjoitusasusta.
ResurssitKiertävä työntekijä linkitetään maanantaisin Sijaintiin A ja tiistaisin Sijaintiin B aukioloaikojen kautta.Estää tuplabuukkaukset eri kaupunkeihin.
iCal-synkronointiJokainen työntekijä tilaa oman resurssinsa iCal-syötteen puhelimensa kalenteriin (Google / Apple / Outlook).Aina ajantasainen päiväohjelma puhelimessa ilman admin-paneeliin kirjautumista.
Julkinen hakemistoOta yritysprofiilista päälle hakemistonäkyvyys (show_in_directory: true).Palvelusi löytyvät FlexiResin valtakunnallisesta hausta kaupungin ja kategorian mukaan.

5f. Vuorokausivuokrauksen erikoistoimialat ja huoltojen hallinta (Mökit, kalusto, ajoneuvot & tilat)

Vuorokausi- ja päivävuokraus (booking_mode = "rental") eroaa merkittävästi tavallisista aikaslottipalveluista. Asiakas ei valitse 60 minuutin aikaa, vaan valitsee nouto- ja palautuspäivän.

Lisäksi vuokraustoimintaan liittyy olennaisesti vaihtopäivien logiikka, vakuutukset ja omavastuut, lisävarusteet sekä kaluston määräaikais-, kuukausi- ja vuosihuollot.

Alla kuvataan neljä eri vuokraustoimialan täsmäkonfiguraatiota sekä viisi tapaa hallita kaluston huoltoseisokkeja ja kuntotarkastuksia.


Vuokraustoimialojen täsmäkonfiguraatiot

1. Vuokramökit, loma-asunnot ja majoitus


2. Ajoneuvot ja peräkärryt (Vuokra-autot, pakettiautot, matkailuautot, trailerit)


3. Kalusto- ja työkonevuokraus (Tekstiilipesurit, maantiivistäjät, halkomakoneet, paljukärryt)


4. Tila-, kokous- ja juhlapaikkavuokraus (Saunamaailmat, juhlasalit, huvilat)


Kuukausi-, vuosi- ja määräaikaishuoltojen hallinta

Vuokrauskaluston ja -tilojen turvallisuus ja toimintavarmuus edellyttävät säännöllisiä huoltoja, katsastuksia, kuntotarkastuksia ja suursiivouksia. FlexiRes tarjoaa viisi selkeää mekanismia huoltotarpeiden hallintaan:

HuoltotyyppiMekanismi FlexiResissäMissä asetetaan
Määräaikaishuolto / KatsastusBlockedTime (esto yksittäiselle resurssille)Hallinta → Estot tai Kalenteri
Kausihuolto / TalvisäilytysAvailabilityRule (aukiolon kausisääntö)Hallinta → Aukioloajat
Toimipisteen huoltoseisokkiHoliday (kaikki resurssit kerralla sulki)Hallinta → Lomat
Vaihtopäivän pesu/tarkastusCheck-in / Check-out -aikojen erotusPalvelun perustiedot
Korjaamon ulkoinen huoltoiCal Feed URL (Google Kalenteri / ulkoinen tilaus)Hallinta → Resurssit

1. Yksittäisen resurssin määräaikaishuolto, katsastus tai korjaus (BlockedTime)

Kun tietty auto, mökki, kärry tai kone tarvitsee öljynvaihdon, määräaikaishuollon, katsastuksen tai viankorjauksen:

2. Kausiluontoisen kaluston talvisäilytys ja telakointi (AvailabilityRule)

Kesäkalustolle (veneet, vesijetit, kesämökit, polkupyörät, terassit) tai talvikalustolle (moottorikelkat, lumilingot):

3. Koko kaluston tai toimipisteen yhteiset huoltoviikot (Holiday)

Kun koko toimipiste, mökkikylä tai vuokraamo suljetaan yhteisen huoltotyön, inventaarion tai kunnostuksen ajaksi:

4. Vaihtopäivien automaattinen huolto- ja siivousikkuna

Päivittäisessä vuokrauksessa kalustoa ei saa luovuttaa suoraan edelliseltä asiakkaalta seuraavalle ilman kuntotarkastusta ja siivousta:

5. Ulkopuolisen korjaamon tai siivousfirman iCal-synkronointi

Jos kaluston huollot teetetään ulkopuolisella korjaamolla (esim. Raskone, Veho, paikallinen venetelakka) tai siivousyrityksellä, joka merkitsee huoltotyöt omaan digitaaliseen kalenteriinsa:


5g. Uudet toimialakohtaiset käyttömallit ja erikoisratkaisut (Mallit 7–13)

FlexiRes kattaa aikaslotti- ja vuorokausivuokrauksen ohella myös erikoistoimialat, joilla on poikkeuksellisia vaatimuksia liittyen sesonkihuippuihin, kaluston kulumiseen, moniresurssisidontaan, mittarilukemiin tai viranomaismääräyksiin.


Malli 7: Rengashotellit, rengasliikkeet ja sesonkivaihdot

Sopii: Rengasliikkeet, autohuollot, kausivaihtopisteet, rengashotellit.

Sesonkivaihdoissa (kevään kesärengasruuhka maalis–toukokuussa ja syksyn talvirengasruuhka loka–marraskuussa) volyymit ovat massiivisia ja aikataulut minuutintarkkoja. Rengashotellissa keskeistä on tietää renkaiden tarkka hyllypaikka etukäteen.

Osa-alueSuositeltu määritysPerustelu
ResurssitTyyppi: Equipment tai Room (Nosturipaikka 1, Nosturi 2, Hallipaikka 3 jne.), Kapasiteetti: 1.Jokaiselle nosturille tai hallipaikalle oma rinnakkainen jono.
AukioloajatSesonkiruuhkissa laajennetut aukiolot (esim. ark. 07:00–19:00, la 09:00–16:00). Sesongin ulkopuolella suppeampi aukiolo.Maksimoi kapasiteetin ruuhkaviikoilla.
Palvelut"Renkaiden kausivaihto (15 min)" (35 €), "Rengashotellivaihto + pesu (20 min)" (45 €), "Uusien renkaiden asennus ja tasapainotus (45 min)" (85 €).Lyhyet, tiiviit aikavälit.
PuskuritPuskuriaika jälkeen: 0 min tai 5 min.Auton ajo sisään ja ulos nosturilta.
EnnakkoajatEnnakkovarausaika: 30 min, Ensimmäisen varauksen ennakkoaika: 120 min.Asiakkaat voivat varata ajan vaikka matkan varrelta.
Lisäkentätrekisterinumero (text, pakollinen), rengashotellin_hyllypaikka (text, esim. "Hylly D-12"), rengaskoko (select: 15"-16" / 17"-18" / 19"+), pulttien_kiristys_aluvanteille (checkbox).Renkaat ehditään nostaa hyllystä valmiiksi nosturin viereen ennen auton saapumista.
MuistutuksetAutomatisoidut SMS- ja sähköpostimuistutukset 24 h ja 2 h ennen aikaa.Minimoi myöhästymiset kiihkeässä 15 minuutin syklissä.

Malli 8: Työkone- ja maarakennuslaitevuokraus

Sopii: Minikaivurit (1–3 t), tärylätkät (maantiivistäjät), Avant-pienkuormaajat, saksinostimet, halkomakoneet, kantojyrsimet.

Työkoneissa vuokraus perustuu usein vuorokausi- tai viikonloppuhintaan, mutta kaluston kuluminen mitataan käyttötunneissa (h). Lisäksi laitteille tarvitaan vakuusmaksu ja usein kuljetuspalvelu työmaalle.

Osa-alueSuositeltu määritysPerustelu
VaraustapaPäivävuokraus (rental) (booking_mode = "rental").Nouto klo 08:00, palautus klo 17:00 (tai vrk-pohjainen).
MittariseurantaResurssin current_usage_hours ja varauksen start_usage_hours / end_usage_hours.Lähtötunnit ja palautustunnit kirjataan varaukselle. Palautus päivittää resurssin kokonaistunnit automaattisesti.
MääräaikaishuollotResurssin huoltosääntö: esim. "100 h öljynvaihto ja rasvaus" (interval_hours: 100, due_at_hours: 250).Hallintapaneeli varoittaa automaattisesti, kun työtunnit lähestyvät huoltorajaa!
Vakuusmaksudeposit_amount: esim. 300–500 €. Tila: held → released tai claimed.Suojaa laiterikoilta, tahalliselta väärinkäytöltä ja puhdistamattomalta palautukselta.
LisäpalvelutAdd-on: "Koneen toimitus työmaalle (< 20 km)" (+60 €), "Koneen nouto työmaalta" (+60 €), "Tankkauspalvelu palautettaessa" (+35 € + polttoaine), "Puhdistus / pesu" (+50 €).Tuo merkittävää lisämyyntiä ja helpottaa asiakkaan arkea.
Lisäkentättyomaan_osoite (text, pakollinen kuljetukselle), kuljettajan_puhelinnumero (text), kuorma-auton_purkupaikka_esteeton (checkbox).Toimituslogistiikka sujuu ilman turhia soittoja.

Malli 9: Lemmikkihotellit, koirahoitolat ja trimmaamot

Sopii: Koirahotellit, kissahoitolat, lemmikkipäiväkodit, eläinten trimmaus- ja pesupalvelut.

Lemmikkipalveluissa kriittistä on turvallisuus (rokotustodistusten voimassaolo), eläimen yksilölliset tarpeet (lääkitys, allergiat) sekä yhdistelmähoidot (majoitus + lähtöpäivän pesu).

Osa-alueSuositeltu määritysPerustelu
ResurssitTyyppi: Room (Koirahuone Pieni 1-4, Koirahuone Iso 1-6, Kissala 1-8), Kapasiteetti: 1 (tai saman perheen lemmikeille 2).Jokainen lemmikki omassa turvallisessa tilassaan.
VaraustapaYövyntähoito: Päivävuokraus (rental) Check-in klo 14, Check-out klo 12. Päivähoito: Aikavaraus (slot) klo 07:30–17:00.Kattaa sekä vuorokausimajoituksen että työpäivähoidon.
Katsastus / RokotuksetResurssin/asiakaskortin huolto-osio: "Kapi- ja raivotautirokotuksen tarkistus", "Kennelyskärokotus".Muistuttaa määräajan umpeutumisesta.
Lisäkentätlemmikin_nimi_ja_rotu (text, pakollinen), syntymaaika_ika (text), erikoisruokavalio (text), saannollinen_laakitys (text), tuleeko_toimeen_muiden_kanssa (select: Kyllä / Vain nartut / Ei muiden seuraan), elainlaakarin_yhteystiedot (text).Hoitajalla on täydelliset taustatiedot hoitojaksolle.
LisäpalvelutAdd-on: "Lähtöpesu ja föönaus" (+35 €), "Kynsien leikkaus" (+15 €), "Metsälenkki 45 min" (+20 €), "Oma herkkuluu iltapalaksi" (+5 €).Hoitolan keskiostos kasvaa jopa 40–60 %.

Malli 10: Pakohuoneet ja elämyspelit

Sopii: Pakohuoneet (Escape Rooms), VR-peliareenat, lasertaistelu, elämysammunta, kirveenheittoradat.

Pakohuoneissa huone ja peliohjaaja (Gamemaster) ovat usein tuplasidottuja, ja pelin jälkeen tarvitaan ehdoton nollauspuskuri, jotta vihjeet, lukot ja rekvisiitta ehditään palauttaa alkuasemiin.

Osa-alueSuositeltu määritysPerustelu
ResurssitTyyppi: Room (Huone 1: Vankilapako, Huone 2: Salaseuran arvoitus).Huone voi ottaa vain yhden ryhmän kerrallaan.
HinnoitteluPriceUnit: person tai ServicePriceTier porrastus: 2 pelaajaa (80 € = 40 €/hlö), 3 pelaajaa (105 € = 35 €/hlö), 4–6 pelaajaa (28 €/hlö).Suurempi ryhmä maksaa vähemmän per henkilö, mutta kokonaistuotto nousee.
PuskuritPuskuriaika jälkeen (buffer_time_after): 20 min tai 30 min.Kriittinen: Ohjaaja ehtii nollata pulmat, lukita arkut ja tuulettaa tilan. Kalenteri estää seuraavan ryhmän tulon ennen nollauksen valmistumista.
EnnakkovarausEnnakkovarausaika: 120 min (2 h).Ohjaaja ehtii paikalle valmistelemaan pelin.
LisäpalvelutAdd-on: "Synttäritarjoilu pelin jälkeen" (+60 €), "Diplomit ryhmälle" (+10 €), "Pelin videokooste muistoksi" (+25 €).Ryhmämyynnin ja virkistyspäivien tuotto kasvaa.
MaksutavatVerkkomaksu tai TVL 69 § mukaiset kulttuuri-/liikuntaedut (Edenred, Smartum, Epassi).Pelit kuuluvat verottajan hyväksymiin kulttuurietuihin.

Malli 11: Golfkentät, frisbeegolf ja simulaattorit

Sopii: Golf-lähtöajat (Tee times), TrackMan- ja Full Swing -golfsimulaattorit, maksulliset frisbeegolfradat.

Golfin lähtöajoissa peliryhmän koko on 1–4 pelaajaa, ja lähdöt tapahtuvat tyypillisesti 10 minuutin välein. Simulaattoreissa puolestaan varataan 1–3 tunnin vuoroja.

Osa-alueSuositeltu määritysPerustelu
Resurssi (Kenttä)Tyyppi: Room (Väylä 1 / Tiiauspaikka), Kapasiteetti: 4, Rinnakkaiset varaukset: Kyllä.4 itsenäistä pelaajaa voi varata paikan samaan 10 minuutin lähtöön.
Resurssi (Simulaattori)Tyyppi: Room (Simulaattori 1, Simulaattori 2), Kapasiteetti: 1 ryhmä.Yksityinen tila yhdelle porukalle.
AukioloajatAuringonnoususta auringonlaskuun (esim. 06:00–21:30), simulaattoreille 24/7 älylukolla.Simulaattorien yö- ja aamukäyttö tuo passiivituloa.
Palvelut"Green Fee 18 reikää" (65 €), "Green Fee 9 reikää" (38 €), "Simulaattorivuoro 60 min" (30 € / prime 40 €).Selkeät tuotteet.
Lisäkentätseura_ja_jasennumero (text), tarkka_tasoitus_hcp (number, max 54.0), green_card_suoritettu (checkbox).Varmistaa pelaajien kelpoisuuden kentälle.
Liikuntaedutallow_sports_benefits: true, sports_benefit_type: "sports".Epassi, Smartum ja Edenred suoraan verkossa tai tiskillä.
Lisäpalvelut"Golfauto 18 reikää" (+40 €), "Vuokramailasetti" (+20 €), "Kärry" (+5 €).Oheismyynti.

Malli 12: Valokuvaus- ja studiovuokraus

Sopii: Valokuvausstudiot, podcast-studiot, videotuotantotilat, suoratoistostudiot.

Studiotoiminnassa asiakas voi varata pelkän tilan omatoimisesti (valokuvaaja tuo omat mallit) tai tilata studiotilan + ammattikuvaajan. Kalliille salamalaitteille ja kameroille tarvitaan vakuus.

Osa-alueSuositeltu määritysPerustelu
ResurssitTyyppi: Room (Studio A Cyclorama, Studio B Daylight), liitetty tarvittaessa kuvaajaan (Staff).Mahdollistaa tilavuokrauksen tai kuvaajapaketin.
ÄlylukotPIN-koodiohjaus (Shelly / Yale). Ovikoodi voimassa varauksen keston + 15 min roudausaikaa.Täysin automatisoitu itsepalvelustudio ilman päivystäjää.
Vakuusmaksudeposit_amount: esim. 200–400 € katevarauksena.Korvaa rikkoutuneet salamaputket tai likaiset taustakartongit.
LisäpalvelutAdd-on: "Profoto-salamasetti 3 valoa" (+45 €), "Savukone" (+20 €), "Taustakartonki uusi rulla" (+30 €), "Shure SM7B podcast-mikrofonisetti 4 hlö" (+40 €).Asiakas räätälöi varusteet tuotannon mukaan.
Puskuritbuffer_time_after: 15 min.Seuraava tuotantoryhmä ei törmää ovella edelliseen.

Malli 13: Veneiden laituripaikat, talvisäilytys ja pienvarastot

Sopii: Venesatamat, pursiseurat, telakat, pienvarastot, konttivarastot.

Kausi- ja pitkäaikaisvuokrauksessa sopimuskausi on kuukausi- tai vuosipohjainen. Portit ja ovet toimivat PIN-koodeilla, ja kalustolle tarvitaan nosto- ja katsastuspäivät.

Osa-alueSuositeltu määritysPerustelu
ResurssitTyyppi: Room tai Equipment (Laituripaikka A-01, Konttivarasto 6 m² K-14).Tarkka paikkakoodi.
VaraustapaKausivuokraus tai kuukausitoistuva (booking_mode = "rental").Kesäkausi 1.5.–31.10., Talvikausi 1.11.–30.4.
KulunvalvontaLaiturin sähkölukollinen portti tai pienvaraston ovi avautuu asiakkaan henkilökohtaisella PIN-koodilla tai puhelimella.Vain maksaneilla vuokralaisilla on pääsy laiturille tai varastolle.
Lisäkentätveneen_rekisteritunnus (text), veneen_leveys_m (number), veneen_syvays_m (number), vakuutusyhtio_ja_poliisinumero (text).Varmistaa, että vene mahtuu poijujen väliin ja vakuutus on voimassa.
Huollot & NostotKalustohuolto: "Kevätkatsastus ja sammuttimentarkastus", "Syysnosto nosturiautolla".Satamakapteeni näkee katsastetut veneet suoraan listalta.

5h. Mittarilukemat, käyttötunnit, vakuusmaksut ja liikuntaedut (Uudet työkalut)

Vuokrauskaluston ja laitteiden ammattimaiseen hallintaan on rakennettu neljä keskeistä toimintoa:

1. Mittarilukemat (km) ja käyttötunnit (h)

2. Mittariperusteiset määräaikaishuollot ja automaattiset hälytykset

3. Vakuusmaksun / Takuumaksun (Security Deposit) kierto

Kone-, ajoneuvo- ja tilavuokrauksessa vakuusmaksu on paras suoja vaurioita, ilkivaltaa tai siivoamattomia tiloja vastaan:

4. Liikunta- ja kulttuuriedut verkkovarauksissa (Epassi, Smartum, Edenred)


6. Jonolistaus

Jonolistaus-sivu näyttää kaikki asiakkaat, jotka odottavat paikkaa täynnä olevalle palvelulle.

Tilat

TilaSelitys
Waiting (sininen)Odottaa vuoroaan jonossa
Notified (keltainen)Saanut ilmoituksen vapaasta paikasta — varausikkuna käynnissä
Converted (vihreä)Jonopaikka muuttui varaukseksi
Expired (harmaa)Varausikkuna umpeutui ilman varausta
Cancelled (punainen)Jonopaikka peruttu

Notified-tilassa näkyy reaaliaikainen laskuri, kuinka kauan asiakkaalla on aikaa jäljellä varauksen tekemiseen. Laskuri muuttuu punaiseksi alle 10 minuutin kohdalla.

Suodattimet

Voit rajata listaa tilan (Aktiiviset / Kaikki / Ilmoitettu / Vanhentunut) ja palvelun mukaan. Refresh-painike päivittää tilanteen manuaalisesti.


7. Käyttäjät

Käyttäjät-sivu on näkyvissä vain Owner-roolisille käyttäjille. Täältä hallitaan paneelin käyttäjätunnuksia.

Käyttäjätasot

TasoPääsy
OwnerKaikki toiminnot, mukaan lukien käyttäjähallinta ja Yritysprofiili
StaffVaraukset, palvelut ja jonolistaus — ei käyttäjähallintaa

Uuden käyttäjän luominen

Klikkaa + New User — lomake avautuu sivulle. Syötä sähköposti, salasana (vähintään 8 merkkiä) ja valitse rooli. Käyttäjä ohjataan ensimmäisellä kirjautumisella asettamaan 2FA.

Käyttäjän hallinta

Olemassa olevan käyttäjän kohdalla on seuraavat toiminnot:

Omaa tiliään ei voi deaktivoida tai muuttaa rooliaan itse.


8. Palautteet

Palautteet-sivu näyttää asiakkaiden jättämät palautteet sisäisen palautejärjestelmän kautta.

Palautejärjestelmä aktivoidaan Asetukset → Yritysprofiili kohdassa. Valitse tila "Sisäinen" ja aseta palautesivun osoite (WordPress-sivu jolla [flexires_feedback]-lyhytkoodi on).


8b. Verkkomaksut (Stripe / Paytrail / Klarna / Visma Pay / PayPal)

Asetukset → Yritysprofiili → Verkkomaksut (vain Owner)

Voit vaatia asiakkaalta maksun varauksen yhteydessä. Varaus vahvistetaan ja vahvistusviestit lähetetään vasta, kun maksu on suoritettu — maksamatta jäänyt varaus vapauttaa ajan automaattisesti noin 35 minuutissa.

Käyttöönotto

  1. Valitse maksunvälittäjä Yritysprofiilista: Ei käytössä (oletus), Stripe, Paytrail, Klarna, Visma Pay tai PayPal. Vain yksi välittäjä voi olla aktiivisena kerrallaan.
  2. Aseta oletus-ALV (%) — käytetään maksurivillä. Palvelulle voi antaa oman ALV-prosentin palvelulomakkeella (esim. liikuntapalvelut 14 %).
  3. Kytke maksu palvelukohtaisesti: Palvelut → muokkaa → "Vaadi maksu varattaessa". Maksun summa on aina järjestelmän laskema lopullinen hinta — kausihinnat, alennuskoodit ja ennakkovarauksen alennettu hinta huomioidaan automaattisesti.

Klarna

  1. Rekisteröidy Klarnan kauppiaaksi ja hae Payments-tuotteelle tunnukset (Username/UID ja Password) Klarnan Merchant Portalista.
  2. Valitse ylläpitoportaalin Asetukset-sivulla maksunvälittäjäksi Klarna, syötä tunnukset.
  3. Testausvaiheessa pidä "Käytä testitiliä (playground)" ruksittuna — tällöin maksut käsitellään Klarnan playground-ympäristössä eikä oikeaa rahaa liiku.
  4. Kun olette valmiita ottamaan maksut tuotantoon, poista ruksi ja syötä tuotantotunnukset.

Huom: Klarna tukee vain EU-alueen kauppiaita — Pohjois-Amerikan/Oseanian tunnuksia ei tueta.

Visma Pay

  1. Hae Visma Pay -kauppiastili osoitteesta vismapay.com.
  2. Kopioi API-avain ja yksityinen avain kauppiaspaneelista ylläpitoportaalin Asetukset-sivulle.
  3. Visma Paylla ei ole erillistä testitiliä — samat tunnukset toimivat sekä testauksessa että tuotannossa, samaan tapaan kuin Paytraililla.

PayPal

  1. Luo PayPal Developer -tili osoitteessa developer.paypal.com ja luo sovellus (App) saadaksesi Client ID:n ja Client Secretin.
  2. Valitse ylläpitoportaalin Asetukset-sivulla maksunvälittäjäksi PayPal, syötä tunnukset.
  3. Testausvaiheessa pidä "Käytä hiekkalaatikkoa (sandbox)" ruksittuna — PayPal Developer Dashboard tarjoaa ilmaisen sandbox-tilin testimaksuja varten.
  4. Kun olette valmiita ottamaan maksut tuotantoon, poista ruksi ja syötä Live-tunnukset (eri Client ID/Secret kuin sandboxissa).

Hyvitykset tehdään automaattisesti

TilanneHyvitys
Asiakas peruu (Omat varaukset / sähköpostilinkki)Maksettu summa − peruutusehtojen mukainen maksu
Yritys peruu (admin-paneeli)Koko maksettu summa
Ennakkovarauksen kynnys ei täytyKoko maksettu summa kaikille maksaneille

Maksustatus varauslistalla

Hinnan alla näkyy varauksen maksutilanne: Maksettu, Odottaa maksua (kesken jäänyt verkkomaksu — vapautuu automaattisesti), Hyvitetty tai Osittain hyvitetty.

Maksuvaatimus ei ole takautuva. Kun kytket palvelulle maksuvaatimuksen, se koskee vain uusia varauksia — aiemmin tehdyt varaukset säilyvät voimassa eikä niiltä pyydetä maksua jälkikäteen, ja ne lasketaan normaalisti mukaan osallistujamääriin ja vahvistuskynnyksiin. Erotat ne varauslistalta siitä, että maksumerkintä puuttuu kokonaan. Toimi näin: veloita asiakkaalta paikan päällä, tai peru varaus ja pyydä varaamaan uudelleen, jolloin uusi varaus kulkee maksun kautta. Maksuttoman varauksen peruminen ei yritä tehdä hyvitystä.


9. Muutoshistoria

Muutoshistoria-sivu näyttää FlexiRes-järjestelmän julkaisutiedotteet. Merkinnät on jaoteltu komponenteittain:

KomponenttiVäriSelitys
BackendSininenPalvelimen ja API:n muutokset
Admin-portaaliViolettiTämän hallintapaneelin muutokset
WordPressOranssiWordPress-lisäosan muutokset
YleinenHarmaaYleiset tiedotteet

Owner-roolinen käyttäjä voi lisätä uusia merkintöjä + Uusi merkintä -painikkeella. Merkinnän luominen vaatii superadmin-avaimen.


9b. Diagnostiikka

Diagnostiikka-sivu (🩺) auttaa selvittämään, miksi palvelu tai aika ei näy asiakkaille.

Konfiguraation terveystarkistus

Sivun yläosa tarkistaa automaattisesti koko varausketjun ja listaa löydökset:

LöydösVakavuusMerkitys
Resurssilla ei aukioloaikoja⛔ VirheResurssi ei näy asiakkaille lainkaan
Palvelua ei linkitetty resurssiin⛔ VirhePalvelua ei voi varata
Sijaintirajaus ilman aukioloaikaa⛔ VirheSijainti näkyy asiakkaille suljettuna
Resurssilla ei palveluita⚠️ VaroitusResurssi on todennäköisesti kesken
Umpeutunut kausisääntö⚠️ VaroitusSääntö ei ole enää koskaan voimassa

Jokaisen löydöksen vieressä on Korjaa → -linkki oikealle hallintasivulle. Jos virheitä on, Dashboard näyttää punaisen varoituskortin joka tuo tälle sivulle.

Miksi tämä päivä on tyhjä?

Sivun alaosan työkalu selittää yksittäisen päivän tilanteen: valitse resurssi, päivämäärä ja halutessasi palvelu → työkalu käy kerrokset läpi ja kertoo mikä sääntö estää varaukset:

Vinkki: Tämä on ensimmäinen paikka johon kannattaa mennä, kun asiakas kysyy "miksi kalenterissa ei näy aikoja".


10. WordPress-lyhytkoodit

FlexiRes-lisäosa tarjoaa seitsemän lyhytkoodia, jotka lisätään WordPress-sivujen sisältöön: [flexires_booking], [flexires_my_bookings], [flexires_week_calendar], [flexires_next_available], [flexires_rental], [flexires_event] ja [flexires_feedback]. Kaikki lyhytkoodit piilottavat itsensä automaattisesti sivurakentajan esikatselussa (Elementor, Gutenberg, Kadence) API-kutsujen estämiseksi.

Lyhytkoodit hyväksyvät numeeristen ID-attribuuttien (service_id jne.) rinnalla myös slug-attribuutit (service_slug, resource_slug, location_slug), jotka toimivat myös palvelinsiirron jälkeen. Jos molemmat on annettu, ID voittaa.


[flexires_booking] — Varauskalenteri

Tärkein lyhytkoodi. Näyttää palveluvalitsimen, viikkokalenterin ja varauslomakkeen.

Parametrit:

ParametriTyyppiSelitys
location_idnumeroSuodattaa palvelut ja resurssit sijainnin mukaan — sijaintivaihtoehto piilotetaan käyttäjältä
service_idnumeroEsivalitsee palvelun suoraa varauslinkkiä varten
resource_idnumeroEsivalitsee resurssin ja suodattaa palvelut ko. resurssille (tarkempi kuin location_id)
dateYYYY-MM-DDAvaa kalenterin valmiiksi tietylle päivälle
event_titletekstiNäyttää otsikkobannerin kalenterin yläpuolella (esim. kampanja tai tapahtuma)
layoutcalendar / next-available / gridNäkymätyyli: kuukausikalenteri (oletus), lista seuraavista vapaista ajoista tai viikkoruudukko (mobiilissa swipe-päivänäkymä)

Esimerkit:

[flexires_booking]

Täysin vapaa valinta — asiakas valitsee itse sijainnin, palvelun, resurssin ja ajan.

[flexires_booking location_id="1"]

Sijaintivaihto piilotettu — näyttää vain sijainnin 1 resurssit ja niille linkitetyt palvelut. Muiden sijaintien resurssit ja palvelut eivät näy.

[flexires_booking service_id="3" resource_id="2" date="2025-06-15"]

Suora varauslinkki: kalenteri aukeaa suoraan palvelulle 3, resurssille 2, päivälle 15.6.2025.

[flexires_booking event_title="Kesätarjous — 20% alennus" service_id="5"]

Kampanjasivu: yläreunan banneri ja esivalittu palvelu.


[flexires_my_bookings] — Varauksen hallinta

Asiakkaan omavaraussivun lyhytkoodi. Toimii kahdella tavalla:

  1. Sähköpostilinkki (?fr_token=xxx) — näyttää yksittäisen varauksen hallintanäkymän: tiedot, peruutus- ja aikamuutostoiminnot
  2. Ilman tokenia — näyttää lomakkeen, jolla asiakas voi pyytää pääsylinkin sähköpostiinsa

Lyhytkoodilla ei ole parametreja — se toimii automaattisesti URL:n fr_token-parametrin perusteella.

Esimerkki:

[flexires_my_bookings]

Lisää tämä lyhytkoodi omalle sivulleen (esim. /varaukset) ja aseta sen URL admin-portaalin Asetukset → Yritysprofiili -kohtaan "Booking page URL" -kenttään. Vahvistussähköpostit linkittävät automaattisesti tähän osoitteeseen.

Mitä asiakas näkee tokenin kanssa:


[flexires_week_calendar] — Viikkokalenterinäkymä

Visuaalinen viikkonäkymä yhden resurssin varaustilanteesta. Sopii esimerkiksi etusivulle tai erilliselle aikataulusivulle. Klikkaamalla vapaata aikaa asiakas voidaan ohjata varaussivulle tai varaus voidaan tehdä suoraan popupista.

Parametrit:

ParametriTyyppiOletusarvoSelitys
resource_idnumero—Näytettävän resurssin ID — suodattaa myös popupin palveluvalinnan
location_idnumero—Sijainnin ID — suodattaa popupin palvelut sijainnin resurssien mukaan
slot_minutesnumero60Aikaruudukon tarkkuus minuutteina (esim. 30, 60)
booking_pageURL—Jos annettu, vapaa aika linkittää tälle sivulle esivalitulla päivällä. Jos tyhjä, varaus avautuu popupiin.
titletekstiWeekly AvailabilityKalenterin otsikko
widthCSS-arvoasetuksistaKalenterin leveys, esim. 100%, 900px
heightCSS-arvoasetuksistaKalenterin korkeus, esim. 600px, auto

Esimerkit:

[flexires_week_calendar resource_id="1" location_id="1"]

Resurssin 1 viikkonäkymä — klikkaus avaa varauksen popupiin suoraan.

[flexires_week_calendar resource_id="2" booking_page="https://example.com/varaa" slot_minutes="30"]

30 min tarkkuus, klikkaus ohjaa varaussivulle esivalitulla päivällä.

[flexires_week_calendar resource_id="1" title="Sauna — varaukset" width="100%" height="500px"]

Mukautettu otsikko ja kiinteä koko.

Kalenterin selite:

Leveys- ja korkeusasetukset voi asettaa myös pysyvästi admin-portaalin Asetukset → Yritysprofiili -kohdassa, jolloin shortcode-attribuutit ylikirjoittavat ne tarvittaessa.


[flexires_feedback] — Palautelomake

Asiakaspalautelomake, joka näytetään varauksen jälkeen lähetetyn palautelinkin kautta. Lomake tunnistaa asiakkaan URL:n fr_feedback=xxx-parametrista automaattisesti.

Lyhytkoodilla ei ole parametreja.

Esimerkki:

[flexires_feedback]

Lisää omalle sivulle (esim. /palaute) ja aseta sen URL admin-portaalin Asetukset → Yritysprofiili -kohtaan "Feedback URL". Valitse myös palautejärjestelmän tyypiksi Sisäinen.

Mitä asiakas näkee:


Palvelu–Resurssi–Sijainti-riippuvuudet

FlexiResin tietomalli perustuu seuraavaan hierarkiaan:

Sijainti (Location)
  └── Resurssi (Resource)  — resource.location_id viittaa sijaintiin
        └── Palvelu (Service)  — ServiceResourceLink yhdistää resurssiin

Palvelulla ei ole suoraa sijainti-kenttää — sijainti määräytyy aina resurssien kautta.

Kuinka linkitys toimii käytännössä

  1. Luo sijainti (esim. "Toimipiste A")
  2. Luo resurssi ja valitse sille sijainti (esim. "Hieroja Matti" → Toimipiste A)
  3. Avaa palvelun asetukset admin-portaalissa ja linkitä palvelu resurssiin (esim. "Hieronta 60 min" → Hieroja Matti)

Nyt "Hieronta 60 min" on saatavilla Toimipiste A:ssa, koska resurssi Hieroja Matti sijaitsee siellä.

Mitä location_id tekee lyhytkoodeissa

Kun shortcodeen asettaa location_id="1":

Tämä tarkoittaa, että palvelu joka ei ole linkitetty yhteenkään ko. sijainnin resurssiin ei näy — vaikka sama palvelu olisi saatavilla muissa sijainneissa.

Esimerkki: kaksi toimipistettä, eri henkilöt

SijaintiResurssiPalvelut
Toimipiste AHieroja MattiHieronta 60 min, Hieronta 90 min
Toimipiste BHieroja AnnaHieronta 60 min
[flexires_booking location_id="1"]  → näyttää Matin ja molemmat palvelut
[flexires_booking location_id="2"]  → näyttää Annan ja vain 60 min palvelun
[flexires_booking resource_id="1"]  → näyttää vain Matin ja hänen palvelunsa

[flexires_next_available] — Seuraavat vapaat ajat

Kompakti näkymä, joka näyttää seuraavat N päivää joissa palvelu on varattavissa. Sopii etusivulle tai palvelusivulle kun halutaan näyttää heti lähimmät vapaat ajat — esim. jos palvelu on tarjolla kerran viikossa, näkyy seuraavat 5 viikkoa joissa on vapaita slotteja.

Parametrit:

ParametriTyyppiOletusarvoSelitys
service_idnumero—Palvelun ID. Jos jätetään tyhjäksi, näytetään palveluvalitsin automaattisesti.
resource_idnumero—Resurssin ID.
location_idnumero—Sijainnin ID — välitetään varaukselle.
daysnumero5Näytettävien vapaiden päivien määrä (max 14).
slot_minutesnumeroasetuksistaAikaslottien tarkkuus.
participantsnumero1Osallistujamäärä saatavuuden tarkistukseen.
titletekstiNext Available TimesNäkymän otsikko.

Esimerkit:

[flexires_next_available service_id="2" resource_id="1" location_id="2"]

Näyttää 5 seuraavaa päivää (oletusarvo) jossa palvelu 2 on varattavissa resurssilla 1.

[flexires_next_available service_id="3" resource_id="1" location_id="2" days="3" title="Seuraavat Mini-GP ajat"]

Näyttää 3 seuraavaa päivää mukautetulla otsikolla.

Toiminta:


[flexires_rental] — Päivävuokrauskalenteri

Kuukausikalenteri päiväpohjaisiin vuokrauksiin (autot, mökit, veneet, välineet). Asiakas valitsee aloitus- ja lopetuspäivän klikkaamalla, näkee hintalaskelman (päivät × päivähinta, kausihinnoittelu huomioiden) ja tekee varauksen. Vaatii palvelun, jonka Booking Mode on Rental (day-based).

Esimerkit:

[flexires_rental resource_id="5"]     ← yhden kohteen kalenteri
[flexires_rental]                     ← kaikki rental-resurssit valittavana
[flexires_rental location_id="2"]     ← vain tietyn toimipisteen kalusto

[flexires_event] — Tapahtumailmoittautuminen

Yksinkertainen ilmoittautumiswidget kertatapahtumille ja toistuville tapahtumille (kilpailut, kurssit, workshopit). Näyttää kaikki saatavat ajat kortteina ilman kalenteria tai valikoita — asiakas klikkaa suoraan "Ilmoittaudu". Täynnä olevat ajat näkyvät harmautettuina.

Parametrit: service_id, resource_id ja location_id ovat pakollisia. Valinnaiset: days_ahead (hakuväli päivinä, oletus 60) ja title (otsikko widgetin yläpuolelle).

Esimerkki:

[flexires_event service_id="12" resource_id="11" location_id="8" title="Kesäkilpailu 2026"]

Lyhytkoodien sijoittaminen — suositukset

LyhytkoodiSuositeltu sijainti
[flexires_booking]Oma varaussivu, esim. /varaa tai /booking
[flexires_my_bookings]Oma hallintasivu, esim. /varaukset tai /my-bookings
[flexires_week_calendar]Etusivu, palvelusivu tai aikataulunakyma
[flexires_next_available]Etusivu tai palvelukohtainen sivu — näyttää lähimmät vapaat ajat
[flexires_rental]Vuokrattavan kohteen tuotesivu tai oma vuokraussivu
[flexires_event]Tapahtuman tai kampanjan oma sivu
[flexires_feedback]Oma palautesivu, esim. /palaute tai /feedback

Kaikkien näiden sivujen URL:t asetetaan admin-portaalin Asetukset → Yritysprofiili -kohtaan, jotta järjestelmä osaa rakentaa oikeat linkit sähköposteihin.


11. Vinkit päivittäiseen käyttöön


12. Kalenteri-integraatio

Admin-portaalin Kalenteri-integraatio-sivu (/ical) mahdollistaa resurssikohtaisen iCal-tilaussyötteen, jolla varaukset näkyvät suoraan Google Calendarissa, Apple Calendarissa tai Outlookissa.

Tilausosoitteen luominen

  1. Avaa Kalenteri-integraatio-sivu vasemmasta valikosta
  2. Kukin resurssi näkyy omana korttinaan
  3. Klikkaa Luo tilausosoite haluamasi resurssin kohdalla
  4. Kopioi generoitu URL ja lisää se kalenterisovellukseesi

Yksityiskohtaustaso

Jokaiselle resurssille voi valita, mitä tietoja kalenteritapahtumaan sisällytetään:

TasoSisältö
PerustiedotPalvelun nimi — ei asiakastietoja
Täydet tiedotPalvelun nimi + asiakkaan nimi, puhelin, sähköposti

Tietoturvahuomio: Täydet tiedot -taso sisältää asiakkaiden yhteystietoja. Älä jaa tilausosoitetta julkisesti — se on tarkoitettu vain sinulle tai henkilökunnalle.

Ohjeet kalenterisovelluksiin

Google Calendar:

  1. Kopioi tilausosoite
  2. Avaa Google Calendar → vasemmasta palkista Muut kalenterit → + → Lisää URL:n kautta
  3. Liitä osoite ja klikkaa Lisää kalenteri

Huom: Google päivittää ulkoiset iCal-syötteet noin 8–24 tunnin välein. Uudet varaukset eivät näy välittömästi.

Apple Calendar:

  1. Tiedosto → Uusi kalenteritilaus
  2. Liitä URL → Tilaa (voit asettaa päivitysväliksi esim. 15 min)

Microsoft Outlook:

  1. Kalenteri → Lisää kalenteri → Tilaa internetistä
  2. Liitä URL

Tokenin uusiminen ja poistaminen


25. Lahjakortit (Gift Cards)

Admin-portaalin Lahjakortit-sivulla (/gift-cards) hallinnoidaan yrityksen myöntämiä ja myymiä arvolahjakortteja:

Lahjakortin luominen ja myöntäminen

  1. Avaa valikosta Lahjakortit ja klikkaa + Uusi lahjakortti.
  2. Voit määrittää oman koodin (esim. KESÄ2026) tai jättää kentän tyhjäksi, jolloin järjestelmä generoi automaattisen koodin (esim. GC-A7B2-9F1C).
  3. Syötä lahjakortin arvo (€) ja valinnainen voimassaolon päättymispäivä.
  4. Voit kirjata saajan ja ostajan nimen ja sähköpostin sekä saatetekstin.

Lahjakortin käyttö varauksissa

Saldon muokkaus ja käyttöhistoria


26. Asiakaskohtaiset ja käyntikohtaiset muistiinpanot

Asiakastietoihin ja varauksiin voidaan kirjata tärkeitä huomioita, mieltymyksiä ja käyntikohtaisia muistiinpanoja:

Muistiinpanotyypit

Käyttö eri näkymissä

GDPR ja tietosuoja


27. Kanta-asiakasohjelma ja palkinnot

FlexiRes sisältää monipuolisen kanta-asiakasjärjestelmän, joka kerryttää pisteitä tai leimoja toteutuneista varauksista:

Asetukset (/settings)

  1. Siirry kohtaan Yritysprofiili → Kanta-asiakasohjelma.
  2. Kytke ohjelma aktiiviseksi.
  3. Valitse kanta-asiakasmalli:
  4. Määritä palkinnot (+ Uusi palkinto):

Pisteiden ansaitseminen ja tasot


28. Tuotekohtaiset ALV-määritykset ja erittelyt

Järjestelmä tukee tuote- ja palvelukohtaisia arvonlisäverokantoja (esim. 25,5 %, 14 %, 10 %, 0 %):

Määritys

ALV-erittelyt ja raportointi


29. Lisämyynti ja lisävarusteet (Add-ons & Extras)

Palveluihin voidaan liittää maksullisia tai maksuttomia lisätuotteita ja -palveluita (esim. padel-mailavuokra, uudet pallot, pyyhe, juomat tai loppusiivous).

Lisäpalvelun luominen ja hallinta

Lisäpalveluita voidaan luoda ja hallita sekä FlexiRes-hallintapaneelista että suoraan WordPressin hallinnasta:

  1. Paina + Uusi lisäpalvelu (tai + Lisää uusi lisäpalvelu).
  2. Määritä tiedot:

Asiakkaan valitsemat lisätuotteet eritellään varauksessa, kuitissa ja päivän Z-raportissa omilla ALV-kannoillaan.


30. Liikuntaedut paikan päällä (Epassi, Smartum, Edenred) & TVL 69 § -kelpoisuus

FlexiRes tukee työnantajan tarjoamien liikunta-, kulttuuri- ja hyvinvointietujen (Epassi, Smartum ja Edenred) vastaanottamista. Koska Smartum on osa Epassi-konsernia, ne esitetään asiakkaalle ryhmiteltynä muotoon Epassi (sis. Smartum).

Verohallinnon (TVL 69 §) ja Epassin/Smartumin säännöt

Työnantajan tarjoama verovapaa liikunta- ja kulttuurietu on henkilökohtainen. Verohallinnon ja palveluntarjoajien ehtojen mukaan:

Palvelukohtainen kelpoisuus (Service-level eligibility)

Pelkkä toimipistekohtainen kytkin ei riitä monitoimikeskuksissa, joissa on sekä liikuntapalveluja (padel) että ei-kelpoisia palveluja (sauna, karting, tavarat). Siksi jokaiselle palvelulle määritetään oma kelpoisuus:

  1. Avaa Palvelut ja klikkaa palvelua muokataksesi sitä.
  2. Kohdasta Perustiedot rullaa alaspäin ja kytke päälle Salli maksu liikunta- ja henkilöstöeduilla (Epassi, Smartum, Edenred).
  3. Valitse edun tyyppi:
  4. Tallenna palvelu. Palvelulistassa näkyy selkeä badge (esim. 🏅 Liikuntaetu).

Jos asiakas yrittää valita liikuntaedun palvelulle, jolla se ei ole sallittu, järjestelmä estää tämän automaattisesti niin verkkovarauksessa kuin tiskikassallakin (HTTP 400).

Toimipistekohtainen käyttöönotto

  1. Avaa Asetukset → Yritysprofiili → Liikuntaedut.
  2. Kytke päälle Salli liikuntaeduilla maksaminen paikan päällä.
  3. Valitse tuetut tarjoajat (Epassi / Smartum, Edenred).
  4. Kirjoita asiakkaalle näytettävä ohjeteksti (esim. "Näytäthän mobiilisovelluksen kuitin tiskillä ennen vuoron alkua.").

Varaus- ja kuittausprosessi

  1. Asiakas tekee varauksen verkossa ja valitsee maksutavaksi liikuntaedun.
  2. Varauksen tilaksi tulee pending_onsite ("Odottaa liikuntaetua").
  3. Kun asiakas saapuu paikalle ja näyttää puhelimestaan hyväksytyn mobiilikuitin, henkilökunta avaa varauksen Varaukset-listalta ja painaa Kuittaa maksetuksi.

31. Tiskikassa & Päivän Z-raportti (POS)

Hallintapaneelin kohdasta Kassa (POS) (/pos) henkilökunta voi hoitaa suoran tiskimyynnin sekä tulostaa kirjanpitoa varten päivittäisen Z-raportin.

Tiskimyynti (Walk-in Checkout)

Päivän Z-raportti (Daily Sales Report)


32. Superadmin & Toimipisteiden hallinta (Company ID, API-avain ja käyttöönotto)

Superadmin-portaali (/superadmin) on tarkoitettu järjestelmän pääkäyttäjälle monitoimipiste- ja moniasiakasympäristön hallintaan.

Uuden yrityksen / toimipisteen perustaminen

  1. Avaa /superadmin ja kirjaudu pääkäyttäjän salaisella avaimella (SUPERADMIN_KEY) ja 2FA-koodilla.
  2. Valitse Tenants-välilehti ja paina + Uusi toimipiste.
  3. Täytä tiedot:
  4. Tallennuksen yhteydessä järjestelmä luo yritykselle automaattisesti turvallisen API-avaimen (sk_live_...). Kopioi avain talteen keltaisesta laatikosta — sitä ei tietoturvasyistä näytetä enää uudelleen kokonaisuudessaan.

Mistä Company ID löytyy myöhemmin?


33. Älylukot ja kulunvalvonta (Smart Locks & Shelly Integration)

FlexiRes sisältää integroidun kulunvalvontajärjestelmän omatoimitiloille, padel-halleille, saunatiloille ja vuokrauskohteille:

Resurssikohtaiset lukkotyypit (/resources)

Avaa resurssi muokattavaksi ja siirry Kulunvalvonta-osioon:

Asetukset resurssilla

Asiakkaan ja henkilökunnan toiminnot

  1. Automaattinen PIN-koodi: Järjestelmä luo jokaiselle varaukselle yksilöllisen 6-numeroisen pääsykoodin, joka toimitetaan vahvistussähköpostissa ({access_code}) ja näkyy varauksen tiedoissa.
  2. Oven avaus hallinnasta: Henkilökunta voi avata oven suoraan varauksen tiedoista painikkeella 🔓 Avaa ovi (esim. etäpäivystyksessä).
  3. Oven avaus asiakasportaalista: Asiakas voi avata oven suoraan omasta mobiiliportaalistaan (/portal/{slug}/bookings) painamalla 🔓 Avaa ovi, kun varaus on aktiivinen ja voimassaoloikkunassa.
  4. Koodin uusinta: Jos koodi pitää vaihtaa, paina varauksen tiedoista Uusi PIN.

34. Tervetulosähköpostit ja API-avaimen itsepalvelurotaatio

Superadmin Onboarding -sähköposti

Kun superadmin luo uuden toimipisteen, järjestelmä voi lähettää yrityksen pääkäyttäjälle tyylikkään tervetuloasähköpostin, joka sisältää:

API-avaimen uudistaminen (Itsepalvelurotaatio)

Jos API-avain on vaarantunut tai se halutaan rutiininomaisesti vaihtaa:

  1. Yrityksen pääkäyttäjä avaa Asetukset → Yritysprofiili → WordPress & API -integraatio.
  2. Paina Uudista API-avain.
  3. Vahvista toimenpide. Järjestelmä luo uuden avaimen ja näyttää sen heti näytöllä.
  4. Päivitä uusi avain WordPress-sivuston FlexiRes-asetuksiin.

35. Palveluhaku ja julkinen hakemisto (Directory)

FlexiRes-alustalle on tulossa keskitetty Palveluhaku (kuluttajaportaali), josta loppuasiakkaat voivat etsiä palveluita ja varattavia asioita toimialoittain, paikkakunnittain ja maittain. Palveluhaku ohjaa asiakkaan aina tekemään varsinaisen varauksen suoraan yrityksen omalle sivustolle (0 % komissio, 0 % maksuriskiä yritykselle).

Yrityksen näkyvyyden aktivointi

  1. Siirry valikosta kohtaan Asetukset → Yritysprofiili → Palveluhaku & Julkinen hakemisto.
  2. Kytke näkyvyys päälle.
  3. Täytä hakukortin tiedot:
  4. Tallenna muutokset sivun alalaidasta.

Palvelukohtainen kategoria ja näkyvyys

Voit määrittää, mitkä palvelut näkyvät haussa ja mihin kategoriaan ne kuuluvat:

  1. Avaa Palvelut (/services) ja valitse palvelu muokattavaksi.
  2. Kohdassa Kategoria & Palveluhaku:
  3. Tallenna palvelu.

Sijaintien, maiden ja kaupunkien toiminta

Tietoturva ja yksityisyys

Hakemistorajapinta ei ole avoinna vapaasti julkiseen internetiin, vaan tiedot toimitetaan hakupalvelulle suojatun, todennetun rajapinnan (X-Directory-Key) kautta vain niistä yrityksistä ja palveluista, jotka ovat nimenomaisesti kytkeneet julkisen näkyvyyden päälle.


36. Etukortit — sarjakortit, kausikortit ja jäsenyydet

Etukortilla asiakas saa palvelun kortin hinnalla tai kokonaan kortin sisältämänä. Kortin kerrat vähennetään automaattisesti, ja jokainen muutos kirjataan kortin tapahtumiin varauksineen — sekä ylläpitäjä että asiakas näkevät, mihin kerrat on käytetty.

Korttityypit (Hallinta → Etukortit → Korttityypit)

Kortin myöntäminen ja hallinta

Hintaporras, joka edellyttää korttia

Palvelun Hinnoittelu → Hintaportaat: valitse Edellyttää korttia ja korttityyppi. Hinnaksi käy alennus, kiinteä hinta tai Sisältyy korttiin (0 €). Varauslomakkeella porras näkyy lukittuna, kunnes asiakas syöttää kortinhaltijan sähköpostin (tai kortin koodin, jos se on asetuksissa vaadittu). Lopullinen tarkistus tehdään varatessa.

Kuka voi varata (palvelun pääsyasetus)

Muistutukset ja viestit

WordPress

Siirretyt kausikortit

Ennen versiota 1.59.0 asiakkaalle merkityt kausikorttitiedot siirrettiin tyypin Siirretty kausikortti korteiksi. Tyypillä ei ole palveluita: lisää siihen palvelut, joihin vanhat kortit kelpaavat.

37. Asiakkaiden tuonti ja vienti

Tuonti ja vienti ovat owner-roolin toimintoja (Hallinta → Asiakkaat, painikkeet sivun yläreunassa).

Tuonti toisesta järjestelmästä

  1. Luo ensin korttityypit (Etukortit → Korttityypit), jos tuot voimassa olevia kortteja. Tiedoston korttityypin pitää vastata olemassa olevan tyypin nimeä tai käännettyä nimeä.
  2. Valitse Tuo asiakkaat ja tiedosto (CSV tai Excel .xlsx, enintään 5 Mt ja 20 000 riviä). Lataa pohjatiedosto antaa valmiit sarakeotsikot.
  3. Tarkista sarakkeiden kohdistus. FlexiRes arvaa sarakkeet otsikoista; vaihda tarvittaessa tai valitse Älä tuo. Sähköposti on pakollinen.
  4. Valitse, mitä tehdään asiakkaalle, joka on jo FlexiResissa (sama sähköposti): täydennä vain tyhjät, korvaa tiedoston arvoilla tai ohita.
  5. Tarkista näyttää, montako asiakasta luodaan ja päivitetään sekä virherivit syineen. Tuonnissa ei tallenneta mitään ennen tätä.
  6. Tuo tallentaa kaiken kerralla. Jos virherivejä on, valitse Tuo ja ohita virherivit tai korjaa tiedosto ja aloita alusta.

Samalla asiakkaalla voi olla useampi kortti: toista sama sähköposti omalla rivillään, yksi kortti per rivi. Asiakastiedot, pisteet ja muistiinpano luetaan asiakkaan ensimmäiseltä riviltä.

Tuotu kortti näkyy kortin historiassa merkinnällä "Tuotu tiedostosta …", ja jäljellä olevat kerrat ovat tiedoston mukaiset. Tuonti ei lähetä asiakkaille sähköposteja.

Vienti

Vie → CSV tai Excel lataa asiakasrekisterin samassa muodossa, jonka voi tuoda takaisin, sekä varausten määrän, viimeisimmän varauksen ja asiakkuuden alkupäivän. Jokainen voimassa oleva kortti on omalla rivillään. Poistopyynnön tehneet ja anonymisoidut asiakkaat jätetään pois.