FlexiCareKids — End-to-end build pre babysittingovú agentúru
Kompletné technické zázemie pre rozbiehajúcu sa babysittingovú agentúru v Bratislave: web, rezervácie, kalendáre pre babysitterky, kreditný systém, meranie a Google Ads. Klientka sa mohla od začiatku sústrediť na službu a klientov.
- Klient
- FlexiCareKids — flexicarekids.com
- Rola
- Samostatne (web, rezervácie, reklama, technické úpravy)
Použité technológie
- WordPress + WooCommerce
- PluginHive Bookings & Appointments
- FlyingPress (cache)
- Custom WP pluginy
- Google Apps Script
- Google Ads
- Google Analytics 4
Dopad
- Čo umožňuje
- Začínajúca agentúra dostala funkčný systém na prijímanie rezervácií, komunikáciu s babysitterkami, spracovanie zrušených rezervácií a získavanie klientov cez Google Ads. Za prvý plný rok prevádzky dosiahla 40 k € obratu a hodnotenie 4.9/5.
- Metrika
- 16 babysitteriek so synchronizovanými Google Kalendármi, kreditný systém pre zrušené rezervácie a 6-mesačnú expiráciu kreditu
Čo to umožňuje
Klientka potrebovala spustiť babysittingovú agentúru bez vlastného technického tímu. Bežný postup by znamenal hľadať samostatne človeka na web, ďalšieho na rezervácie a ďalšieho na reklamu. K tomu by pribudla koordinácia, kto je zodpovedný za ktorý problém.
Postavil som celý systém ako jeden balík: web na WordPress/WooCommerce, rezervácie, vlastné polia v objednávke, synchronizáciu s Google Kalendármi, kreditný systém pre zrušené rezervácie a Google Ads od nuly. Klientka od prvého dňa riešila najmä službu a klientov, nie technické rozhodnutia.
Za prvý plný rok prevádzky agentúra dosiahla 40 k € obratu a hodnotenie 4.9/5.
Čo bolo postavené (chronologicky)
Diagnostika miznúcich babysitteriek v rezervačnom systéme
V rezervačnom systéme sa občas stratili babysitterky alebo sa prepísali ich dostupnosti. Navonok to vyzeralo ako náhodná chyba, ale v skutočnosti išlo o správanie pluginu pri ukladaní nastavení.
Postup:
- Vytvoril som dva malé diagnostické pluginy: jeden zachytával dáta pred uložením, druhý logoval zmeny po uložení
- Pridal som porovnanie pôvodných a nových dostupností pre každú babysitterku
- Logy ukázali, ktoré hodnoty sa menia a kedy
- Email alerty pri detekcii anomálií
- Logy v JSONL formáte
Potvrdená príčina: Plugin pri ukladaní neukladal iba zmenené hodnoty, ale prepísal celý zoznam. Pri otvorení a uložení nastavení sa tak mohli staršie dátumy prepísať aktuálnym dátumom.
Vlastné polia pri rezervácii
Rezervácia potrebovala zbierať viac údajov: telefón, vek detí, adresu a zdravotné otázky. Bežné povinné polia však v kombinácii s rezervačným pluginom zasekávali tlačidlo „Rezervovať“. Riešením bola vlastná validácia na webe aj na serveri.
Cache vrstvy
Riešil som výnimky z cache pre administrátorov a vlastnú cache pre rezervačný kalendár. Cieľ bol zrýchliť web bez toho, aby cache rozbíjala rezervácie alebo administráciu.
Notifikácie pre babysitterky
- Osobný email babysitterky dostáva iba termín a stav rezervácie, nie údaje klienta
- Opravil som nesprávne zobrazovanie konca rezervácie v emailoch
- Pridal som ochranu proti duplicitným emailom pri zrušení rezervácie
Google Apps Script — calendar sync
Rezervácie sa synchronizujú do osobných Google Kalendárov 16 babysitteriek. Z dôvodu ochrany súkromia sa do osobných kalendárov neposielajú mená klientov, telefóny ani adresy.
FlexiCareKids Credit plugin
Kompletný kreditný systém pre zrušené rezervácie:
- Pri zrušení zaplatenej rezervácie sa klientovi automaticky pripíše kredit
- Kredit sa nepripíše pri nezaplatenej alebo opustenej objednávke
- Klient bez účtu dostane účet a možnosť nastaviť heslo
- Kredit sa automaticky odpočíta pri ďalšej objednávke
- Pri refundácii sa kredit najprv zamrazí, aby sa nemohol minúť dvakrát
- Finančné záznamy sa uchovávajú auditovateľne a pri GDPR požiadavkách sa anonymizujú, nie mažú
Čo som sa naučil v projekte
- Staršie pluginy vedia pri ukladaní prepísať viac dát, než čakáte. Pri citlivých nastaveniach sa oplatí mať diagnostiku.
- Rezervačné pluginy často ukladajú časové sloty inak, než by človek intuitívne čakal.
- Súkromie treba navrhnúť od začiatku. Iné údaje patria do firemného emailu a iné do osobného kalendára babysitterky.
- Pri komplexných pluginoch nestačí „naklikať nastavenie“. Občas treba presne pochopiť, v akom poradí sa veci na stránke spúšťajú.