Sytuacja wyjściowa
Strona portfolio z formularzem kontaktowym. Standardowy schemat: klient wypełnia formularz, czeka na odpowiedź, dostaje maila za 24-48h. Problem — 80% zapytań to albo niskobudżetowe projekty, albo niejasne briefy bez konkretów. Czas spędzony na kwalifikacji manualnej to czas stracony na realizację.
Pomysł
Zamiast formularza — rozmowa z AI, która zbiera dane, kwalifikuje klienta i generuje strukturalne podsumowanie. Dwa poziomy:
- Darmowa rozmowa (Haiku): 16 wymian, kwalifikacja BANT dla B2B lub analiza potrzeb edukacyjnych. Koszt per sesja: grosze.
- Premium konsultacja (Opus): 25 wymian za 200 zł, pogłębiona analiza techniczna z ramami architektonicznymi. 200 zł odliczane od wyceny projektu.
Architektura
System składa się z 6 endpointów API (Astro SSR na Vercel Functions), 2 modeli Claude, bazy Supabase (sesje + wiadomości) i integracji Stripe + Resend.
Przepływ darmowej sesji
Klient klika "Rozpocznij rozmowę" — system generuje UUID sesji, tworzy rekord w Supabase i uruchamia Claude Haiku. Bot prowadzi kwalifikację w 16 wymianach. Po zakończeniu wyświetla formularz kontaktowy (email + telefon). Po wypełnieniu: Artur dostaje pełną transkrypcję + podsumowanie JSON, klient dostaje sformatowane podsumowanie z kluczowymi danymi + podziękowanie.
Przejście na premium
Klient może przejść do premium bezpośrednio z landing page lub po darmowej rozmowie.
System zapisuje free_session_id w metadanych Stripe Checkout.
Po płatności webhook tworzy sesję premium w Supabase z powiązaniem.
Opus dostaje podsumowanie z darmowej rozmowy w system prompcie —
nie pyta ponownie o rzeczy, które klient już opisał.
Wcześniejsze zakończenie
Premium klient może w dowolnym momencie kliknąć "Zakończ i wygeneruj podsumowanie". System generuje JSON na podstawie dotychczasowej rozmowy i wysyła emaile.
Prompt engineering
Największe wyzwanie to nie kod, a prompty. Kluczowe reguły, które wymagały iteracji:
- Tożsamość: Bot musi mówić o Arturze w trzeciej osobie. Bez tego Claude naturalnie przechodzi na "ja" i podaje się za Artura.
- Język: Czysta polszczyzna — bez mieszania z angielskim. "Deadline", "scope", "budget" zastąpione polskimi odpowiednikami, chyba że klient sam używa angielskich terminów.
- Nie zgaduj: Bot nie podaje wycen ani terminów. Mówi "to Artur oceni po analizie" zamiast ryzykować zobowiązanie do niskiej marży lub długu technicznego.
- Formatowanie: Czysty tekst, bez markdown. Bold i italic renderują się jako surowe gwiazdki w UI czatu.
Ekonomia
Darmowa sesja (Haiku): koszt to dosłownie grosze per rozmowa. Premium (Opus): worst case przy 25 wymianach po 4096 tokenów to ~136 zł kosztu z 200 zł przychodu. Realistycznie: ~38 zł kosztu, czyli 81% marży. Limit 2 darmowych sesji na IP dziennie chroni przed nadużyciami.
Stack
- Astro 6.0: SSG dla stron statycznych + SSR dla API. Zero zbędnego JS na froncie.
- Claude Haiku 4.5: Darmowa kwalifikacja. 512 tokenów/odpowiedź, 16 wiadomości.
- Claude Opus 4.6: Premium analiza. 4096 tokenów/odpowiedź, 50 wiadomości, pełna historia.
- Stripe Checkout: Płatność 200 zł, webhook do tworzenia sesji.
- Supabase: PostgreSQL z RLS. Tabele: sesje + wiadomości.
- Resend: Emaile transakcyjne — podsumowania, transkrypcje, podziękowania.
- Vercel: Hosting + Functions. Deploy w sekundy.
Efekt
System działa 24/7. Klient dostaje natychmiastową rozmowę zamiast formularza. Artur dostaje skwalifikowanego leada z pełnym kontekstem — problem, technologie, budżet, termin, skala. Premium klienci płacą 200 zł za pogłębioną analizę, która jest odliczana od wyceny projektu. Cały system powstał w 1 dzień.