Как пересадить 1000+ ресторанов с мессенджера на B2B-платформу: кейс с ИИ-парсером заказов, offline-first и борьбой с саботажем
Привет! На связи Рекламафия. Сегодня расскажем историю о том, как за два года перестроить процессы крупного оптового дистрибьютора продуктов питания RESMARKET (60% рынка HoReCa в Калининградской области, более 1040 ресторанов и отелей в портфеле).
Мы создали распределенную операционную платформу из 6 цифровых контуров, которая забрала на себя 70% всех заказов, научилась понимать хаотичные сообщения из мессенджеров с помощью ИИ и сократила время обработки одной заявки в 3 раза.
Под катом — честный рассказ о том, почему стандартные интернет-магазины не работают в B2B, как мы проектировали архитектуру под жесткий offline и как заставили консервативных шеф-поваров и менеджеров перестать саботировать систему.
Боль B2B-дистрибуции: «Маша, мне как обычно»
B2B-продажи в сфере HoReCa (рестораны, кафе, отели) — это филиал ада на земле. Здесь нет стандартных корзин и фиксированных цен. Зато есть:
- Адский ручной ввод. Отдел из 12 менеджеров RESMARKET ежедневно тратил около 50 часов на то, чтобы вручную перебить заказы из мессенджеров и телефонных звонков в «1С:Управление торговлей». На один заказ уходило до 15 минут.
- «Слепые» допродажи. Менеджеры физически не успевали предлагать новинки или акционный товар. В итоге продукты сгорали по срокам годности на складе, а компания теряла миллионы.
- Угон базы. Вся история общения с шеф-поварами велась в личных чатах менеджеров. Уволился менеджер — ушел клиент. При этом у каждого сотрудника был полный доступ к 1С с возможностью скачать всю базу клиентов и цен в один клик.
Клиент пришел к нам с запросом: «Сделайте нам B2B-сайт, чтобы клиенты заказывали сами». Но мы поняли: если просто выкатить сайт, на него никто не зайдет. Шеф-поварам некогда кликать по категориям, им проще наговорить голосовое в мессенджере.
Архитектура платформы: 6 контуров под одним капотом
Мы спроектировали систему, где каждый контур решает свою задачу, а единым «мозгом» выступает API на GraphQL.
- B2B-портал — личный кабинет закупщика с персональными ценами, договорами и актами сверок.
- Мобильное приложение клиента — быстрый заказ прямо со склада ресторана.
- Панель управления — рабочее место менеджера (CRM, аналитика, ИИ-помощник).
- Мобильное приложение агентов — для торговых представителей в полях.
- Мобильная логистика — приложение для водителей-экспедиторов со сканером маркировки «Честный ЗНАК».
- Telegram-бот — моментальная проверка баланса и долга.
Фича-киллер: как мы научили ИИ собирать заказы из мессенджера
Главный инсайт проекта: шеф-повара ненавидят сайты. Им некогда искать картофель или сливки в каталоге. Они привыкли писать менеджеру в мессенджер простыню текста:
«Маш, привет! Нам на завтра: лосось — 3 шт, сыр творожный — 2 ведра, картошка — 5 сеток. И еще то, что на прошлой неделе брали, марку забыл»
Мы поняли, что не сможем победить эту привычку. И решили ее автоматизировать. Внедрили в панель менеджера инструмент AI-импорта заказов:
- Менеджер копирует хаотичный текст из мессенджера и вставляет его в окно заказа.
- LLM-модель парсит текст, извлекая сущности: название товара, количество, фасовку.
- Магия матчинга: система не просто ищет товары по названию в каталоге, а поднимает историю отгрузок этого клиента за последние 180 дней. Если клиент раньше брал творожный сыр Hochland, ИИ выберет именно его, а не Cremette, даже если в тексте было просто написано «сыр творожный».
- Менеджер видит готовый черновик заказа с оценкой уверенности ИИ, правит спорные моменты и в один клик отправляет заказ в 1С.
Результат: время оформления заказа сократилось с 15 до 5 минут. Менеджер больше не работает «копипастером» — он только проверяет работу ИИ.
Технический хардкор: DDD, CQRS и жесткий Offline-first
Для ИТ-директоров и разработчиков расскажем, что у системы под капотом. Мы не использовали готовые CMS-конструкторы, так как они ломаются на первой же тысяче B2B-контрактов со сложным ценообразованием.
- Backend: Node.js, Express, GraphQL (Apollo Server 5). Архитектура построена по принципам DDD (Domain-Driven Design) и CQRS (24 модуля, 111 обработчиков команд/запросов, 38 моделей Prisma ORM). Это позволило изолировать бизнес-логику и масштабировать систему без превращения кода в спагетти.
- Frontend: Next.js (App Router, React 19). Клиентская часть — Tailwind CSS, админка менеджеров — Material UI v7.
- Offline-first (наше спасение): в Калининградской области много зон со слабой связью, особенно на цокольных этажах ресторанов или на удаленных складах.
- Панель менеджера работает на базе IndexedDB (Dexie). Менеджер может подбирать товары и вести CRM без интернета.
- Приложение торговых агентов работает на SQLite с TTL данных 5 дней. Агент оформляет заказ в подвале ресторана, а система синхронизирует данные пакетами при выходе на поверхность.
- Безопасность: единая точка авторизации (SSO) на базе Keycloak (JWT RS256). Менеджеры больше не имеют прямого доступа к базе 1С. Риск слива коммерческих данных сведен к нулю.
Как мы боролись с саботажем (самая сложная часть)
Любой коммерческий директор знает: написать софт — это 30% дела. Остальные 70% — заставить людей им пользоваться. Мы столкнулись с жестким сопротивлением с двух сторон.
Сторона 1: Клиенты (шеф-повара и закупщики)
«Зачем мне ваше приложение, я Маше позвоню». Мы поняли, что уговоры не работают, и создали цифровую ценность, которую нельзя получить по телефону:
- Онлайн-сверки 24/7. Раньше, чтобы получить акт сверки или закрывающие документы, клиент звонил менеджеру, тот шел в бухгалтерию, бухгалтерия делала выгрузку... Теперь все документы доступны в ЛК в один клик.
- Эксклюзивный онлайн-ассортимент. Мы перенесли дефицитные позиции и самые глубокие скидки исключительно в онлайн-канал. Хочешь лосось по спеццене? Оформляй через приложение.
- Бонусная программа. Копить и тратить кэшбек можно только при заказе на сайте или в приложении.
Сторона 2: Менеджеры по продажам
Менеджеры боялись, что автоматизация сделает их ненужными и они потеряют процент с продаж. Мы изменили правила игры:
- KPI на цифровизацию. Мы привязали бонусы менеджеров к проценту клиентов, которых они перевели на самостоятельный заказ через сайт.
- Смена роли. Мы объяснили сотрудникам: «Мы забираем у вас рутину, чтобы вы зарабатывали больше». Вместо ручного ввода данных менеджеры получили инструмент «Перестал брать» (система подсвечивает товары, которые клиент регулярно покупал, но вдруг перестал) и инструмент «Предлагаемые продукты». Менеджеры стали звонить не за заказом, а с готовым решением и аналитикой.
Измеримые результаты
Проект длился около 2 лет. Вот сухие цифры, которые получил RESMARKET:
- 70% всех заказов теперь оформляются клиентами самостоятельно через сайт и приложение.
- В 3 раза сократилось время обработки одного заказа менеджером (с 15 до 5 минут).
- На 15% вырос средний чек в онлайн-канале за счет умной рекомендательной системы на Python (алгоритмы анализируют историю покупок аналогичных заведений и предлагают добрать товар в корзину).
- 30% конверсия в продажи из нового онлайн-канала привлечения клиентов (+30 оптовых лидов в месяц).
- 0% утечек данных. База клиентов и цен надежно скрыта за API-слоем и Keycloak SSO.
Главный вывод
B2B-цифровизация — это про интеграцию, архитектуру и понимание психологии пользователей. Не пытайтесь ломать привычки клиентов (как в случае с мессенджерами) — автоматизируйте их.
А как у вас в компании обстоят дела с приемом заказов? Все еще сидите на телефонах и Excel или уже внедрили автоматизацию? Расскажите в комментариях, обсудим!