Generowanie leadów · Motoryzacja
Grupa Krotoski
Lejek rezerwacji jazd testowych i panel kampanii dla grupy dealerskiej
Pięciostopniowy lejek rezerwacji (miasto, marka, auto, trasa, formularz) dla grupy dealerskiej sprzedającej Audi, Volkswagena, Porsche i sześć innych marek oraz panel, w którym zespoły agencji i klienta tworzą linki kampanii z kodami QR i śledzą każdy lead aż do salonu i CRM-a.
- Rola
- Główny programista: audyt, przebudowa, panel, maile i wdrożenie (232 z 270 commitów)
- Okres
- sierpień - październik 2026
- Technologie
- Next.js
- React 19
- TypeScript
- SQLite
- Docker
- EasyPanel
- REST API
- CRM
Kampania
- Link albo kod QR
- UTM zachowany w sesji
Lejek
- Miasto
- Marka
- Auto
- Trasa
- Formularz
Dostarczenie
- Zapis leada
- Mail do salonu
- Lead w CRM
- Potwierdzenie dla klienta
Panel pokazuje status każdej wysyłki i pozwala ją ponowić.
- ładowanie listy aut
- 14,7 s → 8 ms
- ścieżek kampanii sprawdzonych na produkcji
- 204 / 204
- aut synchronizowanych co noc
- 2800+
- blokujących błędów dostępności, dziś na 31 ekranach
- 6 → 0
Kontekst
Grupa prowadzi kampanie jazd testowych w 6 miastach i 23 salonach, na 44 trasach. Każda rezerwacja musi trafić do właściwego salonu, do CRM-a i do klienta jako potwierdzenie, z zachowanym źródłem kampanii.
Przejąłem prototyp wygenerowany przez AI i zacząłem od audytu. Wykazał 8 krytycznych błędów, m.in. maile do salonów, które nigdy nie wychodziły, i 16 z 44 tras, których nie dało się zarezerwować.
Co zrobiłem
- Audyt prototypu, potem przebudowa i przeniesienie z Vercela na własny serwer w Dockerze
- Ścieżki kampanii jako szablony z macierzy miasto × marka × salon × model, z 5 parametrami UTM i kodem QR dla każdego linku
- Linki kampanii otwierające lejek od razu zawężony, z atrybucją UTM zachowaną przez całą sesję
- Formularz leada z limitem zapytań, honeypotem i walidacją
- Dostarczanie do salonu mailem i do CRM-a, ze statusem i osobnym przyciskiem ponownej wysyłki dla każdego kanału
- Trzy szablony maili: do salonu, potwierdzenie dla klienta i reset hasła
- Dwie role, administrator i użytkownik, sprawdzane po stronie serwera
- Nocna synchronizacja floty z API klienta i instrukcje obsługi dla zespołu klienta
Trudne momenty i jak je rozwiązałem
Problem
Każda wizyta pytała API floty klienta o listę aut: 14,7 sekundy dla 2882 rekordów, a awaria po stronie klienta oznaczała pusty lejek.
Rozwiązanie
Flota jest pobierana w tle, zapisywana lokalnie i przekazywana do pierwszego renderu po stronie serwera. Lista ładuje się teraz w 8 ms, a lejek nie zależy od dostępności API klienta.
Problem
Lead odrzucony przez CRM po prostu przepadał.
Rozwiązanie
Każdy lead jest najpierw zapisywany, a dopiero potem wysyłany. Panel pokazuje osobno status maila i wysyłki do CRM-a i pozwala ponowić każdą z nich.
Problem
Linki kampanii mogły przestać działać po cichu, gdy zmieniały się salony, modele albo trasy.
Rozwiązanie
Rejestr ścieżek kampanii i test, który otwiera każdą z nich. Na produkcji przechodzi 204 z 204.
Wyniki
- Na produkcji od 22.09.2026
- Lista aut: 14,7 s → 8 ms
- Blokujące błędy dostępności: z 6 do 0, utrzymane przy rozroście panelu do 31 ekranów
- Testy dymne: maile 13/13, bezpieczeństwo 8/8
Pokazane jako schemat. Zrzuty ekranu i omówienie na życzenie.
Szukasz takiej osoby do zespołu?
Chętnie opowiem o każdym z tych projektów szczegółowo.
Napisz do mnie