Sistem de rezervari online custom — clinici, spa, fitness, multi-locatie
Construim sistem de rezervari pentru businessuri care au depasit Minup, Bookafy sau Calendly. Multi-locatie cu calendare separate, plata Stripe sau Netopia la rezervare, reminder SMS si WhatsApp automat, taxa no-show retinuta din card on file, pachete prepaid si abonamente. Cod care e al tau, fara abonament SaaS lunar.
Functionalitatile pe care SaaS-urile standard nu le acopera
Multi-locatie cu admin centralizat
Organization → locations → resources → schedules. Fiecare locatie cu propriul calendar, dar admin central agregeaza rapoarte. Subdomeniu per locatie (booking.firma.ro/cluj). Permisiuni granulare: receptia Cluj vede doar Cluj, managerul vede tot. Row-level security in Postgres, tenant context in Next.js middleware.
Plata online cu Stripe sau Netopia
Stripe Checkout pentru clienti internationali (1.4% SEPA), Netopia Payments pentru piata RO (BT Pay, Apple Pay, integrare e-Factura). Plata integrala, avans 30%, sau card on file pentru no-show fee. Webhook handler pentru payment_intent.succeeded confirma rezervarea automat, refund la anulare timpurie.
Reminder SMS si WhatsApp automat
Twilio sau MessageBird pentru SMS (0.04€/mesaj, livrare garantata). WhatsApp Business API via 360Dialog pentru template messages cu butoane Confirma / Reprogrameaza / Anuleaza. Fallback automat: WhatsApp first, SMS daca nu se citeste in 1h. Schedule configurabil: T-24h, T-2h, follow-up T+24h.
Taxa no-show retinuta automat
Card on file via Stripe SetupIntent la booking (autorizat, nu incasat). Cron job la T+30 min: daca status = scheduled si specialistul nu a marcat showed_up, trigger PaymentIntent automat. Reguli configurabile per serviciu (50% la anulare 2-24h, 100% la no-show). Reducere tipica no-show de la 18% la 4% in 3 luni.
Pachete prepaid si abonamente
Pachete: 10 sedinte cu 15% discount, validitate 6 luni, fiecare booking deduce 1. Abonamente Stripe Subscriptions: 200€/luna acces nelimitat, dunning automat la card expirat, suspendare cont dupa 3 retry. Combinate: Gold include 2 sedinte/luna + 30% extra. Gift voucher cu cod transferabil. KPI MRR, LTV, churn in dashboard.
Sincronizare Google Calendar si Outlook
OAuth 2.0 bidirectional cu Google Calendar API si Microsoft Graph. Rezervarile apar in calendarul personal al specialistului in 30 sec. Blocaje personale (concediu) blocheaza slot-uri in sistem. Apple Calendar via CalDAV. Conflict resolution cu alerta admin in caz de double-booking. iCal feed read-only pentru orice client extern.
Resurse multiple: specialisti, cabine, aparate
Modelare reala: o sedinta epilare laser ocupa specialistul + cabina + aparatul laser simultan. Sistemul verifica disponibilitatea tuturor resurselor inainte sa permita booking. Reguli de combinabilitate: aparatul 1 doar in cabina A. Specialisti cross-locatie (medic Bucuresti + Brasov). Time-buffer intre programari pentru curatare (15 min auto).
Portal client si PWA mobil
Portal client cu istoric rezervari, sold pachet, abonament activ, facturi descarcabile, dosarul medical (la clinici). PWA instalabila pe iPhone si Android cu push notifications pentru reminder. Booking in 3 click: serviciu → specialist → slot disponibil. Auto-completare date din ultima rezervare. Re-booking rapid din istoric.
Cum functioneaza
De la discovery la go-live in 30-60 zile
01
Discovery 5-7 zile
Mapam business-ul: ce servicii vinzi, cum se prelungesc, cate locatii, cati specialisti, cum facturezi, ce SaaS folosesti acum si de ce te-a limitat. Iesim cu specificatie tehnica + wireframe-uri + pricing fix.
02
Design UX si UI 7-10 zile
Designam flow-ul de booking (3 click maxim pana la confirmare), dashboard admin cu shortcut-uri operationale, portal client. Validam pe focus group cu 5 clienti reali ai tai inainte sa intram in cod.
03
Build backend si database 14-21 zile
Schema Postgres cu Prisma sau Drizzle: organizations, locations, services, resources, schedules, bookings, payments. API routes Next.js. Integrari: Stripe sau Netopia, Twilio, Google Calendar OAuth, SmartBill pentru facturi automate.
04
Build frontend client si admin 14-21 zile
Next.js 16 App Router cu Server Components pentru SEO. Booking UI cu calendar interactiv (react-day-picker custom). Dashboard admin cu Tanstack Table pentru rapoarte. PWA pentru mobil. Real-time updates cu Server-Sent Events.
05
QA, migrare date 7-10 zile
Test plan complet: booking happy-path, edge cases (no-show, refund, double-booking attempt, plata esuata). Migrare clienti si rezervari viitoare din SaaS-ul vechi (Minup, Bookafy) prin export CSV si import script. Training echipa receptie.
06
Go-live + 90 zile suport
Switch DNS in fereastra trafic minim (3-5 AM). Monitoring intens primele 7 zile cu Sentry + LogRocket pentru session replay. 90 zile suport bug-uri inclus. Lunar review KPI: rata conversie booking, no-show rate, NPS clienti, revenue per slot.
Stack tehnic
Tehnologii alese pentru scalare si mentenanta usoara
Next.js 16 + TypeScript
App Router cu Server Components pentru SEO bun la paginile publice (pagina booking se indexeaza in Google pentru 'rezervare medic [oras]'). Server Actions pentru forme. TypeScript strict mode. Hostuit pe Cloudflare Pages sau Vercel.
Postgres + Prisma / Drizzle
Postgres pe Supabase sau Neon (serverless, scaleaza automat). Schema cu row-level security pentru multi-tenant. Migratii versionate. Indexare smart pentru query-uri de tip 'specialisti disponibili in interval'.
Stripe + Netopia Payments
Stripe pentru clienti EU/international (1.4% SEPA), Netopia pentru piata RO (BT Pay, Apple Pay, e-Factura). Webhook handler unificat cu idempotency keys. PCI compliance prin Stripe Elements sau Netopia hosted page.
Twilio + WhatsApp Business
Twilio Programmable Messaging pentru SMS in EU (0.04€/mesaj). WhatsApp Business API via Twilio sau 360Dialog pentru template messages cu butoane interactive. Fallback automat SMS daca WhatsApp nu se livreaza.
Google Calendar + Microsoft Graph
OAuth 2.0 cu refresh tokens criptate AES-256 in DB. Webhook push notifications pentru sincronizare in 30 secunde. Apple Calendar via CalDAV. iCal feed read-only pentru orice alt client de calendar.
SmartBill + Oblio facturare
Integrare SmartBill API pentru emiterea automata a facturilor la fiecare incasare cu CUI/CNP client preluat din profil. Suport e-Factura ANAF (SPV upload XML UBL). Alternativ Oblio sau FGO. Storno automat la refund Stripe.
Cui se potriveste
Clinici medicale si stomatologice cu 5+ medici si 2+ locatii
Spa, salon de beauty cu pachete prepaid si abonamente lunare
Fitness, pilates, yoga studios cu clase de grup si rezervare loc
Centre de recovery, fizioterapie cu sedinte recurente programate
Firme care au depasit Minup, Bookafy, Calendly si vor flow custom
Businessuri cu rata no-show 10-20% care vor card on file automat
Cui NU se potriveste
Cabinete individuale cu 1 specialist si sub 30 programari/luna — Minup la 15€/luna e perfect
Restaurante si saloane fara modele custom de pricing — TheFork sau Treatwell sunt suficiente
Firme fara echipa care sa adopte un sistem nou — custom cere training si discipline operationale
Cei care nu vor sa investeasca minim 4.500€ upfront si prefera SaaS lunar mic
Businessuri cu under 6 luni runway — custom recupereaza investitia in 8-14 luni
Firme care vor sa migreze in 2 saptamani — custom serios cere 30-60 zile minim
Numar locatii si specialisti — fiecare locatie adauga 800-1200€
Integrari externe — fiecare API custom 500-1500€ (CRM, HIS, ERP, e-Factura)
App mobil nativ vs PWA — nativ React Native +3000-5000€
Modele de pricing — pachete + abonamente + gift voucher cumulat +1500€
Migrare date din SaaS-ul actual — peste 1000 clienti +800€
SLA contractual 99.9% si on-call — pachet ongoing 600€/luna separat
Intrebari frecvente
Ce ne intreaba clinici, spa si fitness inainte sa aleaga custom
Cand am nevoie de sistem custom in loc de Minup, Bookafy sau Calendly?
Cand SaaS-ul standard te limiteaza in modele de business reale. Exemple concrete: ai 4 locatii cu echipe diferite si calendare separate dar vrei un singur cont admin si rapoarte consolidate — Minup iti cere abonament per locatie scump. Vinzi pachete prepaid de 10 sedinte cu validitate 6 luni — Bookafy nu suporta deduction din pachet. Vrei taxa no-show automata 50% retinuta din cardul salvat — niciun SaaS RO nu o face curat. Trebuie sa integrezi cu CRM-ul tau, factureaza prin SmartBill si trimite reminder WhatsApp prin Twilio — ai nevoie de cod custom. Sub 5 specialisti si flow simplu — ramai pe Minup, e mai ieftin. Peste 5 specialisti, multi-locatie sau flow special — custom recupereaza investitia in 8-14 luni prin reducere abandon si no-show.
Cum gestionez multi-locatie cu calendare separate dar admin unic?
Modelul pe care il livram: ierarhie organization → locations → resources (specialisti, cabine, aparate) → schedules. Admin central vede agregat tot, dar fiecare locatie are propriul subdomeniu sau path (ex: /booking/bucuresti, /booking/cluj) cu calendar izolat. Specialisti se pot lega de mai multe locatii (un medic care lucreaza si Bucuresti, si Brasov). Servicii configurabile per locatie (preturi diferite, durata diferita, disponibilitate diferita). Rapoarte: dashboard consolidate cu filtre per locatie, comparatii cross-location, KPI ocupare cabine, top 10 specialisti. Permisiuni granulare: receptia din Cluj vede doar Cluj, managerul vede tot. Tehnic implementat cu row-level security in Postgres + tenant context in Next.js middleware.
Pot avea plata online (Stripe / Netopia) integrata la rezervare?
Da, e una din diferentele cheie fata de SaaS-uri. Optiuni implementate: 1) Plata integrala la rezervare — Stripe Checkout sau Netopia hosted, suma incasata la booking, refund automat la anulare cu 24h+ inainte. 2) Plata partiala (avans 30%) — utila la clinici stomatologice cu sedinte 200-500€. 3) Card on file pentru no-show fee — salvam metoda de plata (Stripe SetupIntent), nu incasam la booking, dar putem retine 50% daca clientul nu vine si nu anuleaza in 24h. 4) Plata din pachet prepaid — clientul are 10 sedinte cumparate, fiecare booking deduce 1. Webhook handler proceseaza payment_intent.succeeded si confirma rezervarea automat. Integrare cu SmartBill pentru factura emisa la fiecare incasare cu CUI client.
Cum se trimit reminder-e SMS si WhatsApp catre clienti?
Doua canale principale, alegerea depinde de target. SMS via Twilio sau MessageBird: 0.03-0.05€/mesaj, livrare garantata, citit in 3 minute media. Util pentru clienti 50+ ani sau zone fara internet stabil. Trimite: confirmare la booking (T+0), reminder la T-24h, reminder la T-2h, follow-up post-vizita la T+24h pentru recenzii. WhatsApp Business API via Twilio sau 360Dialog: 0.005-0.02€ pentru template message in 24h interval, gratuit pentru replies. Util pentru clienti tineri, suporta poze (foto inainte/dupa), butoane interactive (Confirma / Reprogrameaza / Anuleaza) care actualizeaza calendarul automat. Implementam ambele cu fallback: trimit WhatsApp, daca nu se citeste in 1h, trimit SMS.
Pot pune taxa automata pentru no-show sau anulari tarzii?
Da, e unul din motivele principale pentru care firmele cumpara custom. Mecanism: la booking obligi card on file via Stripe SetupIntent (clientul autorizeaza dar nu se incaseaza). Reguli configurate per serviciu: anulare cu peste 24h inainte = gratuit, anulare 2-24h = retinem 50% din pret, anulare sub 2h sau no-show = retinem 100%. Cron job ruleaza la 30 min dupa programare si daca status = scheduled si specialistul nu a marcat 'showed_up', trigger auto-charge prin Stripe PaymentIntent. Clientul primeste email + SMS cu chitanta si motivul. Important legal: trebuie afisat clar in T&C la booking si checkbox explicit. Rezultat tipic: reducere no-show de la 15-20% la 3-5% in 3 luni, recuperare directa 200-500€/luna in clinici medii.
Se integreaza cu Google Calendar sau Outlook pentru specialisti?
Da, sincronizare bidirectionala cu Google Calendar API si Microsoft Graph pentru Outlook 365. Bidirectional inseamna: 1) Rezervarile facute in sistem apar in calendarul personal Google al specialistului in 30 secunde. 2) Daca medicul isi blocheaza in Google Calendar 'Concediu' 12-16 august, sistemul de booking nu mai accepta rezervari in acel interval. 3) Sedintele de tip personal (medic la copil scoala) blocheaza slot-ul si in Google. Implementare OAuth 2.0 cu refresh tokens stocate criptat, webhook Google push notifications pentru update-uri instant in loc de polling. Integrare Apple Calendar via CalDAV pentru iPhone users. iCal feed read-only pentru orice client de calendar care suporta subscribe. Conflict resolution: in caz de double-booking accidental, sistemul afiseaza alerta admin si propune resolve manual.
Cat costa un sistem custom de rezervari si ce influenteaza pretul?
Intervalul realist: 4.500€ - 15.000€ implementare + 0€ recurent (codul tau, hostuit pe Cloudflare / VPS). 4.500-6.500€ pentru sistem single-location, 3-5 specialisti, plata Stripe, reminder SMS, sincronizare Google Calendar, dashboard admin simplu. 7.000-10.000€ pentru multi-locatie (2-4 locatii), pachete prepaid, abonamente, taxa no-show, integrare WhatsApp, dashboard cu rapoarte. 11.000-15.000€ pentru sistem complex: 5+ locatii, integrare CRM custom, app mobil pentru clienti (PWA sau React Native), tabela ocupare cabine real-time, integrare cu sisteme medicale (ex: HIS / EMR), portal pacient cu istoric. Pretul creste cu: numar integrari externe (fiecare API = 500-1500€), nivel automatizari, complexitate rapoarte, dorinta de app mobil nativ vs PWA.
Suporta abonamente lunare si pachete prepaid de sedinte?
Da, ambele modele sunt cele mai cerute la fitness, beauty si clinici de recovery. Abonamente lunare via Stripe Subscriptions: clientul plateste 200€/luna pentru acces nelimitat la X servicii sau pana la Y sedinte/luna (cu carry-over configurabil), renewal automat la 30 zile, dunning automat la card expirat (3 retry-uri, apoi suspendare cont). Pachete prepaid: clientul cumpara 10 sedinte de 80€ cu 15% discount (680€ total), validitate 6 luni, fiecare booking deduce 1 sedinta cu tracking sold. Combinate: abonament Gold include 2 sedinte/luna + 30% reducere la sedinte extra. Sistem de credite si reward (10 sedinte = 1 gratis). Cadouri (gift voucher cu cod unic transferabil). Toate cu rapoarte LTV, churn, MRR pentru analiza business.