Case study

Agent głosowy AI do obsługi zaległych płatności

Kompletny system, który analizuje dane, prowadzi rozmowy telefoniczne po litewsku i automatycznie realizuje ustalone działania po zakończeniu połączenia.

Klient: litewska firma zarządzająca nieruchomościami

Zakres: produkt end-to-end: od hurtowni danych do rozmowy i dokumentów

Technologie: Python, Django, FastAPI, MSSQL, konwersacyjne AI (Free AI Voice Generator & Voice Agents Platform | ElevenLabs), telefonia SIP (Infrastructure for realtime agents | Telnyx), GPT-5.5 – analiza post call

Jak działa agent głosowy AI do obsługi zaległych płatności Dzienny cykl pracy: dane o należnościach trafiają z hurtowni do kolejki, usługa głosowa wykonuje połączenia przez SIP, model prowadzi rozmowę, a po jej zakończeniu drugi model rozpoznaje wynik i uruchamia odpowiednie działania. Operator ma wgląd w cały proces. Agent głosowy AI do obsługi zaległych płatności Jeden dzień roboczy – od aktualnego salda do działania wykonanego w każdej sprawie PRZYGOTOWANIE Hurtownia danychsalda, kontakty i adresy 12:30Import dziennyfiltr, deduplikacja, scenariusz Dzisiejsza kolejkatabela w bazie danych 06:00Kontrola wpłatbrak wpłaty wraca do kolejki ROZMOWA 13:00–18:00Usługa głosowado 4 połączeń jednocześnie MODEL GŁOSOWYMowa na wejściu i wyjściukrótka ścieżka ogranicza opóźnienie Łącze SIPlitewski numer Klientrozmowa po litewsku Każda rozmowa otrzymuje instrukcję, dane klienta i zatwierdzone sformułowania. Agent nie korzysta z własnej wiedzy. ANALIZA Webhook po rozmowiepodpisany i weryfikowany Nagranie i transkrypcjazapisane i przeszukiwalne MODEL JĘZYKOWY — JEDEN PRZEBIEGKlasyfikacja i lista działańbez osobnego etapu decyzyjnego Kontrolaco 15 minut DZIAŁANIE Status sprawywstrzymaj, zamknij, zadzwoń SMS potwierdzającypisemne ustalenia z rozmowy Faktura e-mailemwysyłana tylko na prośbę Dokument ratalnygenerowany dla opiekuna Zadanie dla człowiekaspory i niejasne sytuacje Panel operatoranagranie, transkrypcja, analiza i wysłane treści Historia audytowakażda zmiana i wiadomość ze znacznikiem czasu

Problem

Zarządca nieruchomości co miesiąc rozlicza dziesiątki tysięcy lokali. Nawet niewielki odsetek opóźnionych płatności oznacza dużą liczbę telefonów: trzeba potwierdzić tożsamość rozmówcy, wyjaśnić należność, ustalić termin zapłaty i udokumentować rozmowę.

To powtarzalna praca wykonywana w krótkim oknie czasowym. Zespół nie był w stanie zadzwonić do wszystkich, dlatego celem było zautomatyzowanie rutynowej części procesu – w języku litewskim, z pełną kontrolą operatora i możliwością prześledzenia każdej decyzji.

Rozwiązanie

Zbudowaliśmy system realizujący pełny cykl raz w każdym dniu roboczym. Rano sprawdza niespełnione obietnice wpłat. O 12:30 pobiera aktualne salda z hurtowni danych, wybiera sprawy do obsługi i tworzy kolejkę. Między 13:00 a 18:00 prowadzi do czterech rozmów jednocześnie.

Po każdym połączeniu model językowy analizuje cały zapis rozmowy, rozpoznaje jej wynik i zwraca ustrukturyzowaną listę działań. System może zmienić status sprawy, wysłać SMS, przekazać fakturę e-mailem, wygenerować dokument albo utworzyć zadanie dla pracownika. Wieczorem powstaje raport z przebiegu kampanii.

Operator widzi nagranie, transkrypcję, klasyfikację, podsumowanie i dokładną treść każdej wysłanej wiadomości. Automatyzacja nie jest więc „czarną skrzynką” – wszystkie działania można sprawdzić następnego dnia na jednym ekranie.

Jak przebiega rozmowa

  1. Pobranie sprawy. Usługa głosowa otrzymuje dane potrzebne do rozmowy: imię i nazwisko, adres, kwotę, termin płatności, scenariusz oraz właściwe biuro obsługi.
  2. Połączenie. Telefon wykonywany jest przez łącze SIP z litewskiego numeru.
  3. Obowiązkowe informacje. Agent przedstawia się jako asystent cyfrowy, informuje o nagrywaniu i prosi o zgodę na kontynuowanie. Ten fragment jest stały i nie jest tworzony przez model.
  4. Weryfikacja tożsamości. Zanim rozmówca potwierdzi, że jest właściwą osobą, agent nie podaje kwoty ani żadnych informacji o koncie.
  5. Rozmowa. Agent przedstawia należność i obsługuje typowe scenariusze: deklarację zapłaty, informację o dokonanej wpłacie, prośbę o fakturę, raty, spór lub kontakt z pracownikiem.
  6. Analiza i działanie. Podpisany webhook dostarcza nagranie i transkrypcję. Model klasyfikuje wynik, a system od razu wykonuje dozwolone działania.

Co dzieje się po połączeniu

Wynik rozmowyAutomatyczne działanie
Ustalono termin zapłatyWstrzymanie sprawy do wskazanej daty i SMS z potwierdzeniem
Wpłata została już wykonanaPięć dni przerwy, ponowna kontrola i SMS z adresem do przesłania potwierdzenia
Brak fakturyWysłanie najnowszej faktury e-mailem
Prośba o ratyWygenerowanie dokumentu i przekazanie go opiekunowi
Spór dotyczący należnościZamknięcie sprawy dla agenta i utworzenie zadania dla pracownika
Żądanie zakończenia kontaktu lub agresjaGrzeczne zakończenie rozmowy bez kolejnych prób
Brak jednoznacznego wynikuBrak automatycznego działania i oznaczenie sprawy do weryfikacji

Najważniejsze decyzje projektowe

Prosta kolejka w bazie danych

System importuje dane raz dziennie i dzwoni w pięciogodzinnym oknie. Kolejka jest tabelą ze statusem, a rekordy są pobierane transakcyjnie. Przy tej skali broker wiadomości zwiększyłby złożoność bez realnej korzyści.

Istotnym przypadkiem brzegowym okazało się rozróżnienie komunikatów „nie ma już spraw” i „wszystkie linie są zajęte”. Zrównanie tych stanów sprawiło podczas jednej kampanii, że zawieszone połączenie przedwcześnie zatrzymało dalsze wybieranie numerów.

Model prowadzi rozmowę, ale reguły pozostają w kodzie

Agent głosowy nie zapisuje ustrukturyzowanych danych w trakcie rozmowy. Daty, scenariusze i działania są wyodrębniane dopiero po połączeniu z pełnej transkrypcji. Taki podział poprawił dokładność i pozwolił ponowić analizę bez ponownego kontaktu z klientem.

Wszystko, co można jednoznacznie obliczyć – porządkowanie współwłaścicieli, normalizacja adresów czy wybór właściwego biura – wykonuje backend. Model otrzymuje gotowe dane i nie improwizuje. Na pytania spoza zatwierdzonej instrukcji i bazy wiedzy odpowiada przekazaniem sprawy pracownikowi.

Jedna analiza, spójny zestaw działań

Jeden przebieg modelu zwraca klasyfikację rozmowy, wyodrębnione dane i listę konsekwencji. Są one zapisywane razem, dzięki czemu nie powstaje stan, w którym rozmowa została zrozumiana, ale wynik nie został wykonany.

Bezpieczeństwo i kontrola

Informacja o nagrywaniu pojawia się na początku rozmowy, a dane o należności dopiero po potwierdzeniu tożsamości. Webhook jest podpisany i weryfikowany, a połączenie z hurtownią danych ma dostęp wyłącznie do odczytu. Nagrania, listy spraw i wygenerowane dokumenty są traktowane jako dane osobowe.

Tryb testowy przekierowuje wszystkie telefony, SMS-y i e-maile do testera. Jeżeli brakuje testowego odbiorcy, system bezwarunkowo odmawia wysyłki – nie może przypadkowo skontaktować się z prawdziwym klientem.

Wyniki oparte na pomiarach

  • Wstęp rozmowy skróciliśmy z 304 do 181 znaków, a jego średni czas z 21 do około 12,5 sekundy, zachowując wszystkie wymagane informacje.
  • Mediana czasu od zakończenia wypowiedzi klienta do pierwszego dźwięku agenta wyniosła 2,0 sekundy na podstawie 204 zmierzonych tur rozmowy.
  • Analiza znaczników czasu wykazała, że długie pauzy powodowało sporadyczne pomijanie krótkich odpowiedzi przez detekcję końca wypowiedzi. Pozwoliło to poprawić konkretną konfigurację zamiast eksperymentować z całym systemem.
  • W przypadku znikających litewskich znaków porównanie bajtów i liczby segmentów SMS wykazało, że konwersja zachodziła po stronie trasy operatora, a nie aplikacji.

Stan projektu

System pracuje na danych produkcyjnych w kontrolowanym trybie pilotażowym: operator wybiera prawdziwe sprawy i ręcznie uruchamia kampanię. Zespół może zmieniać treść instrukcji w panelu administracyjnym bez wdrażania nowej wersji aplikacji.

Najważniejszym wyzwaniem nie był sam głos, lecz właściwy podział odpowiedzialności między modelem językowym a kodem. Model odpowiada za rozmowę i interpretację języka; kod – za reguły, bezpieczeństwo i przewidywalne konsekwencje.

Najpierw testowaliśmy model głosowy od Open AI ale działał zbyt słabo, nie potrafił prowadzić rozmów zgodnych ze skomplikowanym scenariuszem. Jego plus był taki, że odpowiadał bardzo szybko, i przy kolejnym projekcie, gdzie rozmowa będzie miała prostszy scenariusz, myślę, że do tego modelu wrócę.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *