← усі кейси
Інтернет-магазин E-commerce / FoodTech ·

AI-асистент допродажів у CRM: менеджеру лишається прочитати готову репліку

На кожне нове замовлення сервіс сам підбирає 2 товари для крос-селу і пише готовий скрипт, який менеджер просто зачитує клієнту по телефону. Латентність ~5 секунд, текст пише хмарна модель.

  • На кожне замовлення - 2 релевантні товари + готовий скрипт прямо в картці CRM
  • Латентність ~5 секунд від створення замовлення до готового скрипта
  • LLM обирає лише з топ-10 кандидатів - жодних вигаданих SKU чи цін
  • Генерація в хмарі: підказка в картці не зникає разом зі світлом у розетці
KeyCRMPython 3.12FastAPIAPSchedulerhttpxPostgreSQLClaude / Gemini APIDocker Compose

Клієнт уже на лінії. Менеджер уже витрачає на нього три хвилини, щоб підтвердити замовлення. І всередині цих трьох хвилин є момент, коли можна продати ще на пару сотень гривень - але майже ніхто цього не робить.

Не тому, що менеджери погані. Щоб допродати, треба на ходу згадати весь асортимент, придумати логічну пару до кошика і скласти живу фразу - поки клієнт мовчить у слухавку. Попрощатись завжди простіше.

Тепер менеджер відкриває картку замовлення і бачить там готовий абзац. Його треба просто прочитати вголос.

~5 с
від замовлення до готового скрипта
2
товари крос-селу на кожне замовлення
0
розумової роботи менеджера

Проблема: допродаж - це робота, яку легше не робити

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

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

Три причини, чому допродаж «не злітає» сам собою

😴 Менеджери лінуються

  • Допродаж - це згадати асортимент, придумати звʼязку, сформулювати й запропонувати
  • Більшість не роблять цього взагалі

📈 Трафік дорожчає

  • Реклама росте на 15-30% щороку
  • Без зростання чека й LTV економіка розвалюється

🎯 Низька маржа ніш

  • Здорове харчування, нутрицевтика
  • Кожні +50 грн до чека - різниця між прибутком і збитком

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

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

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

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

Що відбувається між замовленням і дзвінком
Нове замовлення що вже в кошику короткий список кандидатів
2 товари + готова репліка поле в картці CRM менеджер зачитує клієнту

Увесь цикл - 4-5 секунд. Картку відкривають за хвилини або години, тож менеджер ніколи не чекає.

Головна знахідка пілоту: це має бути репліка, а не порада

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

Друга версія почала писати текст, звернений одразу до клієнта. Саме після цієї зміни менеджери почали користуватися підказкою.

Чому друга версія дала стрибок адопції

❌ v1 · інструкція менеджеру

  • «Запропонуй клієнту X, оскільки він узяв Y»
  • Менеджер усе одно мусить перекласти це в живу розмову - робота не зникає

✅ v2 · пряма репліка клієнту

  • «До вашого псиліуму ідеально пасує мигдальне борошно - без нього кето-випічка не вийде. Раджу взяти разом, всього 159 грн.»
  • Менеджер просто читає. Не думає, не формулює.

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

Людина робить рівно одну дію: читає. Вона не обирає товари, не згадує ціни, не вигадує аргумент і не тримає в голові, що клієнт брав минулого разу.

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

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

Сервіс працює в бойовому режимі. Що змінилось у щоденній роботі:

  • на кожне замовлення менеджер отримує два конкретні товари і готову фразу, без жодних роздумів;
  • підказка вже лежить у картці до того, як менеджер набрав номер;
  • рекомендація ніколи не буває безглуздою: не пропонується те, що вже куплено, чого немає на складі або що суперечить дієті клієнта;
  • жодних вигаданих товарів і цін - система обирає тільки з реального каталогу;
  • підказка не залежить від того, чи є світло у власній серверній: генерація живе в хмарі, а не на GPU під столом.

Чесно про межі. Система не дзвонить і не продає замість менеджера - вона лише прибирає розумову роботу перед дзвінком. Вона поки не знає, чи менеджер справді зачитав скрипт і чи клієнт погодився: контур вимірювання будується наступним етапом. І вона не гарантує, що допродаж відбудеться - вона гарантує, що спроба буде підготовлена.

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

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

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

Уся конструкція тримається на одному принципі: LLM не вигадує, а обирає з перевіреного. Спершу детермінований алгоритм звужує весь каталог до топ-10 кандидатів, і лише потім модель обирає 2 з 10 та пише скрипти. Модель ніколи не бере SKU «з голови».

Потік: від замовлення до скрипта в картці
Замовлення на сайті KeyCRM webhook «новий ордер» черга завдань
FastAPI-сервіс топ-10 кандидатів хмарна LLM поле «Що допродати?»

Як рахується скоринг кандидатів

Скоринг кандидатів - сума з чотирьох джерел
Найвища вагаЕкспертна матриця крос-сел пар - складена керівником товарного напряму вручну (60-70 локомотивів)
ВисокаCo-purchase з історії - які товари статистично часто йдуть разом в одному кошику (підвищений lift)
СередняКомплементарні категорії - те, що зазвичай супроводжує вже наявне в кошику
ДинамічнаСезонність: velocity за 14 днів × календарний буст (пряники в грудні, паска навесні)

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

Фільтри, після яких лишається лише доречне
НаявністьТовар є на складі й не куплений цим клієнтом за останні 60 днів
ЦінаСума двох рекомендацій - не більше 40% від чека, щоб не лякати цінником
ДієтаДієтичні теги клієнта: веганам - не тваринне, діабетикам - фініки або мед замість цукру, безглютеновим - не пшеничне борошно
РізноманіттяДві рекомендації обовʼязково з різних категорій, щоб не вийшло «кокосове молоко» плюс «кокосові вершки»

Стек: власні Python-сервіси в Docker Compose

Шари системи
CRMKeyCRM - нативні webhookʼи на події, REST API на читання та запис, кастомні поля картки
ОркестраціяВласний сервіс на FastAPI + APScheduler - приймає webhook, тримає чергу завдань, розклад і роутинг
СервісPython 3.12 + FastAPI - API-клієнти на httpx, підбір кандидатів, спілкування з LLM, логування
БазаPostgreSQL - каталог, історія, експертна матриця, co-purchase пари, лог рекомендацій
LLMХмарні моделі Anthropic (Claude) і Google (Gemini) - модель не треба утримувати, ціна запиту передбачувана
ДеплойDocker Compose - кожен компонент окремим контейнером

Спершу модель крутилась на власному GPU-сервері. В українських реаліях це означає просту річ: немає світла - немає підказки в картці, і менеджер лишається сам на сам із дзвінком.

Хмарна модель знімає цю залежність: сервіс живий, доки живий інтернет, а не доки живе електропостачання. Для щоденних операційних задач це питання безперервності роботи, а не економії.

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

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

Контур якості й самонавчання

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

Дорожня карта
ФундаментПідбір плюс готовий скрипт у картці CRM - уже в бойовому режимі
Етап 1Транскрипція дзвінків: IP-телефонія (Ringostat) → Whisper
Етап 2Семантичний аналіз: чи менеджер запропонував допродаж і чи клієнт погодився
Етап 3Цикл зворотного звʼязку: погодився → плюс вага парі, відмовився → штраф; перерахунок щомісяця
Етап 4Контроль менеджерів: немає спроби допродажу в транскрипті → точковий сигнал керівнику
Етап 5Якісна метрика: менеджер одним кліком оцінює розмову в картці - добре, нейтрально або погано
Як система самонавчається (Етап 3)
Дзвінок клієнт погодився + вага парі товарів
Дзвінок клієнт відмовився мінус вага парі перерахунок щомісяця

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

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

Технічно кейс тиражується на будь-яку CRM, яка вміє повідомляти про нове замовлення і має вільне поле в картці.

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

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

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

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