← усі кейси
Телеком-компанія з контакт-центром В роботі Телеком / Клієнтський сервіс ·

Рік дзвінків контакт-центру вирішив, що має вміти бот: 117 921 розмова замість здогадок

Перш ніж будувати бота підтримки, ми розшифрували й розклали по темах усі дзвінки за рік. Бот робить рівно те, що забирало в операторів найбільше часу: баланс, оплата, послуги, діагностика «немає інтернету». І працює на реальних даних абонентів.

  • 117 921 дзвінок за повний рік розшифровано й класифіковано: видно, що саме зʼїдає 3 708 годин роботи операторів
  • Три теми - оплата, обладнання й нові підключення - забирають 57% усього часу, і саме з них бот починав
  • Бот працює на реальних даних: упізнає абонента за номером у Telegram, показує баланс і дату, до якої вистачить коштів, дає посилання на оплату
  • База знань бота зібрана з 6 359 розмов, які оператори вирішили без виїзду майстра: 24 сценарії з реальними формулюваннями
Python 3.12python-telegram-botPostgreSQLfaster-whisper large-v3bge-m3WireGuardsystemd
Статус проєкту

Бот працює з абонентами, функції додаються поетапно разом із відповідною частиною білінгу. Скільки дзвінків він забирає з контакт-центру, фіксується на даних сезону, тому цифр ефекту тут поки немає.

Кожен бот підтримки починається з однакової наради: «що він має вміти?». Відповідають керівники, які дзвінків давно не слухають, і оператори, які памʼятають найнеприємніші. У результаті бот вміє те, про що говорили, а люди дзвонять про інше.

У цьому проєкті ми спершу вислухали всіх. Буквально: кожен дзвінок до контакт-центру за рік, 117 921 розмову. І лише після цього вирішили, що бот робить першим.

117 921
дзвінок за рік розкладено по темах
57%
часу операторів - лише три теми
24
сценарії з реальних розмов у базі знань бота

Проблема: найчастіше - не те саме, що найдорожче

Контакт-центр провайдера перевантажений восени і після кожної зміни тарифів. Здається очевидним: зроби бота на найчастіші питання - і навантаження впаде. Але «найчастіше» і «найдорожче» тут різні речі.

Кількість дзвінків і час, який вони зʼїдають, - різні картини
«Немає інтернету»: частка дзвінків16,5%
«Немає інтернету»: частка часу12,3%
Обладнання: частка дзвінків11,7%
Обладнання: частка часу20,1%

Дзвінки «немає інтернету» короткі: переважно це аварія, і оператор може лише назвати строк. А розмова про обладнання триває в середньому понад три хвилини, бо оператор голосом веде людину по лампочках, кабелях і кнопках роутера. Бот на «найчастіше» розвантажив би не тих.

Чому просто «зробити бота» не працює

🎯 Не ті функції

  • Список складають за відчуттями
  • Найдорожчі розмови лишаються операторам

🔐 Чужі дані

  • Баланс і договори - персональні дані
  • Бот, який покаже чужий договір, гірший за відсутність бота

🗣 Не ті слова

  • Відповіді пишуться мовою інструкцій
  • Абонент питає інакше і йде дзвонити

Як автоматизація це вирішує

Спершу аналітика, потім бот. Про те, як розшифровані дзвінки перетворюються на карту клієнтських питань, у нас є окремий кейс. Тут ця карта стала технічним завданням: кожна функція бота має за собою порахований обсяг дзвінків.

Від записів розмов до функцій бота
Рік записів → розшифровка → теми й результати
що закривається голосом → функції бота → Абонент у чаті

Ключова ідея: бот бере те, що оператор і так закриває без виїзду

Для кожної теми порахували не лише кількість дзвінків, а й чим вони закінчуються. Оплату оператор вирішує голосом у 95 випадках зі ста - значить, бот може зробити те саме. «Немає інтернету» вирішується в розмові лише в 16 випадках зі ста - там бот не замінить майстра, але може провести покрокову перевірку, яку оператори й так диктують щодня.

Що вже вміє бот
Хто виАбонент ділиться контактом у Telegram, бот знаходить усі його договори. Кілька адрес на одному номері - не проблема, архівні договори позначені окремо
БалансБаланс, тариф і дата, до якої вистачить коштів, - це розриває ланцюжок «гроші скінчились → інтернет зник → дзвінок з питанням чому»
ОплатаПосилання на оплату через платіжні системи, які провайдер уже використовує. Карткових даних бот не бачить узагалі
ПослугиПослуга «кілька днів у борг», телефонія, зміна тарифу, привʼязка нового роутера. Кожна дія підтверджується перед виконанням
ДіагностикаПокрокова перевірка «немає інтернету», витягнута з реальних розмов операторів: індикатори, кабель, перезавантаження, коли кликати майстра
ОператорОдна кнопка передає розмову людині, коли бот не впорався або абонент просто хоче поговорити

Що дістається людям

Операторам лишаються розмови, де справді потрібна людина: аварії, виїзди майстра, нові підключення, нестандартні ситуації. Керівник отримує те, чого раніше не мав: відповідь на питання «про що нам дзвонять» у цифрах, а не у враженнях.

Що це дало бізнесу

Перше, що дав проєкт, - ясність. Три теми (оплата, обладнання, нові підключення) забирають 57% часу операторів. Внутрішні розмови операторів між собою - 373 години на рік, окрема стаття витрат, про яку ніхто не знав. Пік навантаження - осінь, різниця між піком і спадом близько 30%. А січень щороку дає сплеск питань про оплату: люди дзвонять після зміни тарифів дізнатися, чому гроші закінчились швидше. Саме цей сплеск бот має зняти першим.

Друге - бот, якому можна довіряти персональні дані. Він показує договори тільки власнику номера, обмежує кількість спроб, веде журнал усіх дій і не відкриває жодного вхідного порту на сервері.

Чесно про межі. Бот не лагодить аварії і не замінює майстра на виїзді. Частина функцій залежить від білінгу провайдера і додається тоді, коли там зʼявляється відповідна можливість. А скільки саме дзвінків бот забрав із контакт-центру, покаже перший повний сезон - саме тому у кейсі стоїть статус «в роботі».

Як це влаштовано всередині

Далі - інженерна частина

Наступний розділ пояснює, як система влаштована. Якщо вас цікавить лише результат, його можна пропустити - нижче є розділ про те, кому це підходить.

Аналітична частина працює локально, бо записи розмов абонентів - чутливі дані. Сервер контакт-центру зʼєднаний із власним AI-сервером через WireGuard. Розшифровка - faster-whisper large-v3, далі очищення тексту, векторизація моделлю bge-m3 і класифікатор, навчений на 735 розмовах, розмічених вручну. Точність за перехресною перевіркою: 80% для теми і 71% для результату розмови. Цього достатньо для надійних часток по всьому масиву, хоча окремий дзвінок може бути класифікований помилково, - і в звітах це прямо написано.

Шари системи
АналітикаРозшифровка, векторизація і класифікація дзвінків на власному обладнанні. Персональні дані знеособлюються ще на етапі вивантаження
БотPython 3.12, python-telegram-bot. Стан сесій, привʼязки абонентів і журнал подій - у PostgreSQL
БілінгОкремий API провайдера лише для бота: погоджений набір дій, без доступу до чого-небудь понад це. Бот працює тільки через дозволені виклики
БезпекаПеревірка, що контакт належить самому користувачу, ліміти спроб, журнал усіх дій, токени в захищеному файлі, жодного вхідного порту назовні
Знання24 сценарії з 6 359 розмов, вирішених дистанційно. Суми й строки з розмов можуть застаріти, тому бот завжди бере актуальні значення з білінгу, а не з бази знань

Реальні дані принесли три сюрпризи, які жодна специфікація не описувала. Той самий договір приходить двічі, якщо телефон записаний у кількох полях картки, - бот згортає дублікати. У неактивних договорів дата «оплачено до» стоїть на десять років уперед - таке абоненту показувати не можна, тому для них бот пише статус словами. А номер телефону повʼязаний з усіма договорами за роки, включно з давно розірваними, - бот показує всі, але з чіткою позначкою стану.

Окремий урок - про помилки. Одна відповідь білінгу «не вдалося» може означати чотири різні ситуації при привʼязці роутера: неправильний формат адреси пристрою, роутер ще не увімкнений, роутер підключений не до тієї лінії або проблема з портом. Абоненту в кожному випадку треба сказати своє, інакше він піде дзвонити, і сенс функції зникне. Тому з білінгом узгоджено коди причин, а не лише статус «помилка».

Кому це підходить

Провайдерам, операторам звʼязку, сервісним компаніям і будь-якому бізнесу з контакт-центром, де записи розмов уже ведуться, а бот підтримки лише планується. Найбільше користі там, де значна частина дзвінків про баланс, оплату, статус послуги чи просту діагностику.

Ознака, за якою легко перевірити, чи це про вас: якщо на питання «про що вам найчастіше дзвонять» у вас є лише відповідь «ну, про різне», а записи розмов за рік лежать і ніхто їх не слухав, - так, це про вас.

Хороший бот підтримки починається не з вибору платформи, а з того, що ви нарешті чесно вислухали своїх клієнтів.

Потрібне схоже рішення?

Опишіть задачу - підберу архітектуру під ваш бюджет і дані.