Розробка омніканального AI-чат-бота (усі месенджери + сайт)

Заявки надходять у месенджери, на сайт і в пошту, а відповіді живуть у різних вікнах — частина звернень губиться, а клієнт чекає. Ми розробляємо омніканального AI-чат-бота під ключ: єдина логіка, єдина історія діалогу та один контур керування для всіх каналів. Час на першу відповідь скорочується, а навантаження на підтримку розподіляється рівно.
Часті запитання

Чому омніканальний AI-чат-бот ламається на третьому каналі

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

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

Клієнт почав розмову в месенджері, уточнив деталі на сайті, повернувся в чат — і отримує ті самі питання заново, бо сесія живе в пам'яті конкретного обробника і скидається за таймаутом. Це і є втрата контексту діалогу: бот не «не зрозумів», бот не знає, що розмова вже була.

Для оператора той самий розрив історії листування виглядає як порожня картка — не видно, що клієнт писав раніше в іншому каналі.

Далі з'являються дублі звернень. Один запит приходить з кількох каналів підтримки різними заявками, кожна зі своїм номером, і ніхто не пов'язує їх з однією людиною та одним завданням.

Розсинхронізовані логи добивають розбір: за інцидентом не відновити, в якому каналі клієнту що пообіцяли і хто це підтвердив.

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

Що дає омніканальний AI-чат-бот: вимірювані ефекти

Частка звернень, закритих без оператора, — головна метрика омніканального бота.

На типовому потоці (статус замовлення, запис, повернення, тарифи, доставка) автономно закривається 60–75% діалогів: бот відповідає за базою знань і підключеними обліковими системами, а не за жорстко прописаними сценаріями. Залишок переходить до людини вже зі зібраним контекстом, тому оператор не починає розмову з нуля.

Час першої відповіді перестає залежати від завантаження зміни: відповідь іде за секунди, включно з ніччю та піковими годинами. Черга як клас відмов зникає — звернення не губляться в моменти, коли операторів фізично не вистачає. Метрику рахуємо окремо по кожному каналу, щоб бачити, де саме просідає якість відповіді.

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

Єдина історія діалогу закриває ще один клас відмов — втрату контексту під час передачі між каналами. Клієнт почав у месенджері, продовжив на сайті або в чаті всередині застосунку: бот і оператор бачать ті самі повідомлення, номер замовлення і попередні спроби вирішення.

Переказувати заново нічого не потрібно, а відповідь «опишіть проблему ще раз» зникає з практики — частка скарг на розірваний діалог падає до поодиноких випадків.

Режими підключення каналів: порівняння варіантів

Омніканальний AI-чат-бот тримається не на моделі, а на шарі маршрутизації звернень. У кожного каналу свій тип подій, формат вкладень, правила підтвердження доставки та ліміти на швидкість відповіді.

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

Варіант підключення Коли підходить Обмеження
Прямі інтеграції 1–2 канали, жорсткі вимоги до затримки та підтвердження доставки Кожен канал — окремий код: новий займає тижні
Шлюз повідомлень 4+ каналів, запуск у стислі терміни Залежність від лімітів і правил посередника, частина нестандартних подій недоступна
Власна шина маршрутизації Багато каналів, свої пріоритети, аудит і повторна обробка Потребує супроводу: черги, повтори, моніторинг
Гібридна схема Масові канали плюс 1–2 критичні Складніша конфігурація, потрібна єдина схема розпізнавання клієнта

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

Новий канал додається без переписування логіки діалогу — змінюється лише модуль прийому на вході, а історія звернення та контекст залишаються спільними.

Як ми впроваджуємо: етапи інженерної роботи

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

Як влаштований процес

  1. Аудит каналів і поточних сценаріїв. Збираємо статистику звернень, вивантажуємо діалоги операторів і позначаємо повторювані типи запитів — вони стають ядром сценаріїв, а рідкісні одразу йдуть до людини.
  2. Схема маршрутизації. Описуємо, який запит закриває бот, який передається оператору, а який — на другий рівень підтримки. Правила живуть окремою таблицею рішень, а не всередині коду, тому їх можна змінювати без перевипуску.
  3. Налаштування каналів і бази знань. До одного ядра підключаємо адаптери месенджерів і віджета на сайті, базу знань збираємо з регламентів і минулих відповідей операторів — формулювання залишаються впізнаваними для клієнтів.
  4. Зв'язка з операторською. Під час передачі людині бот віддає всю історію діалогу і розпізнані сутності: номер замовлення, категорію звернення, пройдені кроки. Оператор продовжує розмову, а не починає її заново.
  5. Відлагодження на тестовому контурі. Проганяємо сценарії на записах реальних діалогів і перевіряємо гілки обриву зв'язку, повторного надсилання та переходу клієнта між каналами.
  6. Перевірка на бойовому трафіку. Вмикаємо бота в тіньовому режимі: він пропонує відповідь, але надсилає її оператор. За часткою згоди видно якість до початку автоматичного надсилання, далі канали перемикаються поступово.
  7. Передача в експлуатацію і навчання команди. Віддаємо доступи, регламент правок бази знань і дашборд з метриками по каналах. Команда замовника сама змінює формулювання і підключає нові канали без звернення до нас.

Конфігурації, схеми та регламенти: що залишається у вас

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

До передачі кожен артефакт перевірено: за ним можна розгорнути бота в новому середовищі, змінити логіку і розібрати звернення без листування з нами.

  • Конфігурації каналів — підключені месенджери та веб-віджет з параметрами доступу, лімітами на надсилання, вікном відповіді та правилами форматування для кожного каналу.
  • Схема маршрутизації — як вхідне повідомлення визначається за каналом, мовою та інтентом і куди йде: у сценарій бота, до операторів або в зовнішню систему.
  • Опис сценаріїв і правила передачі оператору — дерево діалогів, умови ескалації, поведінка за невпевненої відповіді моделі та за недоступності зовнішнього сервісу.
  • Політики доступу — ролі адміністратора, редактора й оператора: що кожен бачить у листуванні та які зміни може внести.
  • Регламент правок — порядок зміни сценаріїв, шаблонів відповідей і порогів упевненості: хто погоджує, як перевіряється на тестовому контурі і як відкочується.
  • Документація і тестовий набір — карта інтеграцій, склад бази знань, чек-ліст контрольних діалогів та інструкція для першої лінії підтримки.
  • Журнали та зберігання — які події та тексти діалогів зберігаються, на який термін і як вивантажуються на запит.

Кейс: єдиний контур для чотирьох каналів підтримки

Як було

До впровадження підтримка жила в чотирьох незалежних вікнах: сайт, WhatsApp, Telegram і пошта. У кожного каналу була своя історія і свої шаблони, тому один і той самий клієнт писав у два місця і отримував двох різних операторів.

Перша відповідь у пікові години йшла за 3–4 години, а третина звернень дублювала попередні — листування переносили руками.

Як стало

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

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

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

Через місяць роботи: час першої відповіді — 40–60 секунд цілодобово, дублі звернень скоротилися на 71%, частка автономних відповідей — 62% за розмітки закритих листувань і донавчання сценаріїв, пропущених діалогів немає. Оператори перестали бути перемикачем між вікнами і зайнялися складними випадками.

Що робити, якщо бот уже розгорнуто в одному каналі?

Працюючий бот в одному каналі — це вже готове ядро: логіка діалогу, розпізнавання намірів, звернення до облікової системи та правила передачі оператору.

Розширення на решту каналів майже ніколи не потребує переписування з нуля — завдання в тому, щоб відокремити канальну специфіку від сценаріїв і винести її в окремий шар.

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

Переписується лише модуль каналу — формат кнопок і вкладень, обмеження на довжину відповіді, спосіб ідентифікації користувача, підтвердження доставки.

Зупинка поточного бота не потрібна. Нові канали піднімаються паралельним контуром зі спільним ядром, підключаються по одному, а перемикання трафіку йде за сегментом аудиторії або за часткою запитів, а не одразу.

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

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

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

Окрема складність — канали без кнопок і без доступу до попередніх повідомлень. Такі сценарії проєктуються так, щоб вибір можна було зробити текстом, а стан діалогу зберігалося на боці ядра, а не в листуванні. Рішення ухвалюється один раз і працює для всіх наступних каналів.

Часті технічні сумніви перед стартом

Перед стартом замовники ставлять ті самі питання — не про вартість, а про стики, де омніканальний сценарій зазвичай ламається. Нижче — відповіді інженерів по п'яти вузлах: від нестандартного каналу до викатки нових сценаріїв на живому трафіку.

У нас нестандартний канал — внутрішній чат і розділ в особистому кабінеті. Підключите?

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

Як бот передає діалог оператору?

Передає разом з історією, зібраними полями та оцінкою наміру. Маршрутизація — за навичкою, завантаженням і часовим поясом. Оператор бачить, що вже запитали, і не повторює питання; після паузи бот повертається в діалог з того самого місця.

Як розпізнати одного клієнта в різних каналах?

Профілі пов'язуємо за підтвердженими ознаками: телефон, пошта, номер замовлення, токен веб-сесії. За неоднозначного збігу бот ставить уточнювальне питання, а не склеює історії мовчки — помилкове склеювання дорожче за зайвий крок.

Чи можна навчити бота на нашій наявній базі знань?

Забираємо ваші регламенти, статті підтримки та інструкції, розбиваємо на фрагменти й індексуємо. Відповідь будується з опорою на джерело, тому її можна перевірити. Якщо в базі є суперечності, спочатку чистимо — інакше бот упевнено повторює застаріле.

Що буде з ботом під час оновлення сценаріїв?

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

Обговоримо задачу і повернемося з оцінкою та планом

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

  • Канали — які месенджери, сайт, пошта і соцмережі вже приймають звернення і які плануєте підключити.
  • Обсяг звернень — скільки діалогів на добу, пікові години, частка повторюваних питань і навантаження на операторів.
  • Сценарії — що бот закриває сам, де зобов'язаний передати діалог людині і як це стикується з вашими регламентами.
  • Поточне рішення — що вже пробували, де воно впирається в обмеження і чому частина каналів залишилася без автоматизації.
  • Дані та доступи — до яких систем потрібна інтеграція, де лежить база знань, які вимоги до зберігання листування.
  • Обмеження — терміни запуску, етапність, відповідальні на вашому боці.

Після розбору ви отримаєте план робіт за етапами, склад рішення під ваші канали і терміни впровадження з точками контролю. Опишіть задачу в зручному форматі — повернемося з оцінкою та пропозицією щодо архітектури.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142