Наименование организации:
ООО «Мой Софт»
40702810310000021416
Расчетный счет:
АО «ТИНЬКОФФ БАНК»
Банк:
044525974
БИК:
781101001
Корреспондентский счет:
7811616280
ИНН:
781101001
КПП:
1167847299410
ОГРН:
ОКПО:
03614300
Бесщетников Антон Игоревич
Генеральный директор:
192019, г. Санкт-Петербург, ул. Мельничная, д. 18, литер А, пом. 18-H 10, оф. 805
Юридический адрес:
Почтовый адрес:
192019, г. Санкт-Петербург, а/я 2
Реквизиты компании ООО «Мой Софт»
По нишам

Чат-бот для оптовых продаж

ИИ-агент для опта: цена по объёму, дилерский уровень, остаток на складе, отсрочка и документы, прайс в таблице или 1С, каталог в CRM.

Команда платформы СаввиОбновлено 16 сентября 20266 мин чтения
Пластилиновые коробки на поддоне у складского стеллажа, кромка коралловая
Коротко

В оптовой переписке первой идёт цена от объёма. ИИ-агент считает её по прайсу с дилерскими уровнями, сверяет остаток таблицей или запросом в 1С, называет условия по минимальной партии и отсрочке из инструкции и передаёт менеджеру то, что требует личной договорённости: скидку сверх уровня, документы, спецификацию.

Партия в двести единиц, и первым же сообщением звучит дилерская цена. Розничный покупатель спрашивает, сколько стоит одна штука. Закупщик сразу называет объём и хочет вилку, наличие и срок отгрузки в одном сообщении, будто прайс у него уже открыт на соседней вкладке.

Разница между двумя переписками в том, какие данные нужны для ответа: остаток под этот объём, уровень скидки, отсрочка платежа.

Чем оптовый запрос отличается от розничного

Оптовый вопрос почти всегда пакетный: объём, от которого считается цена, наличие на складе под этот объём, дилерский уровень клиента, отсрочка платежа и способ отгрузки — самовывоз или доставка. Отвечать по одному пункту за раз неудобно обеим сторонам: пока считается цена, важно сразу видеть остаток и условия по счёту.

Минимальная партия обычно прописана в прайсе отдельной колонкой или общим правилом в инструкции агента. Цена от объёма — это несколько цифр на позицию: розница, опт от N единиц, отдельная ставка для дилера. Уровень клиента логичнее держать полем сделки или тегом в CRM, чем спрашивать заново в каждом диалоге.

Что спрашиваютРозничный покупательЗакупщик
Ценаза одну штукуот объёма партии
Наличиеесть ли товархватит ли на всю партию
Оплатасразуотсрочка, счёт на юрлицо
Документычекспецификация, накладные
Получениесамовывоз рядомдоставка партией

Проверьте на своих диалогах.Регистрация без карты, 500 ₽ на тест по промокоду BLOG500

Собрать агента

Прайс и остатки: таблица, а не база знаний

Прайс с ценами по уровням и актуальный остаток, это данные со строгой структурой и точным ключом (артикул, модель), а не связный текст. Правило из чек-листа платформы простое: точный поиск по значению — таблицы, смысловой поиск по формулировке — база знаний.

Загружается такой прайс тремя способами: CSV в кодировке UTF-8 с разделителем-запятой, файл Excel или подключённая Google-таблица с доступом «Читатель» или «Редактор». Частота обновления Google-таблицы задаётся в минутах, по умолчанию 1440, то есть раз в сутки, и есть кнопка ручного обновления в любой момент.

!
Про частое обновление остатков

Ставить обновление чаще 30 минут не рекомендуется. Каждое обновление скачивает таблицу целиком, и при большом файле частые запросы создают нагрузку на аккаунт Google вплоть до ограничения доступа к нему. Для остатков, которые меняются в течение дня, надёжнее кнопка ручного обновления по факту отгрузки, а не таймер на пять минут.

Когда клиент называет товар не так, как в прайсе (например, «трубу на сорок вторую», а не точное наименование позиции), работает смысловой поиск по колонке, и дальше действует то же устройство, что в таблицах с прайсом: по артикулу и модели поиск строгий, по формулировке услуги или товара — мягче, с допуском на разные слова одного смысла.

Если остатки живут в 1С

Когда склад живёт прямо в 1С и в таблицу не выгружается, агент получает остаток запросом к ней напрямую: на стороне 1С публикуется веб-сервис, а в агенте настраивается действие «Вебхук», которое обращается к нужному методу по артикулу или номеру заказа.

Для настройки нужны три вещи: URL метода вместе с описанием того, какой запрос он принимает, список заголовков и способ авторизации, который может отсутствовать вовсе. Если есть возможность влиять на проектирование метода со стороны 1С, стоит заложить в нём поддержку POST-запросов: так проще передавать объём партии и артикул за один вызов. Настройка действия и авторизация по шагам лежат в статье про интеграцию с 1С.

Каталог в CRM и дилерские условия

Если карточки товаров уже заведены в CRM, агенту не обязателен отдельный прайс-файл. В amoCRM включается поиск по каталогу товаров, и за него отвечает функция amo_product_search_in_catalog(): агент получает данные о товаре напрямую из карточки, а лимит на число результатов задаётся в настройке канала. В RetailCRM то же самое устроено через клиентскую базу: заказы, их статусы и товары видны в одном окне, что удобно для повторных оптовых закупок у постоянного клиента через агента в RetailCRM.

Дилерский уровень и договорные условия в обоих случаях логичнее хранить полем сделки или тегом, а не переспрашивать: агент подставляет нужную ставку, ориентируясь на уже сохранённый статус клиента, а не на его собственные слова о скидке.

1440 мин обновление Google-таблицы по умолчанию
10 вызовов лимит обращений к одной функции за диалог
~15 стоимость диалога при оплате по токенам
Источник: Частота обновления и лимит вызовов — по руководству платформы Савви. Стоимость диалога при оплате по токенам, 1000 токенов = 1 ₽.

Розничный покупатель или закупщик: кто пишет и когда звать менеджера

Агент различает их по форме запроса. Розничный вопрос почти всегда про одну позицию и её цену. Оптовый сразу называет объём, спрашивает дилерскую цену или упоминает отсрочку — и это сигнал переключиться на другую ветку инструкции: цена по уровню, остаток под весь объём, условия отгрузки.

1 Определить объём Если клиент называет количество выше порога партии или прямо просит «опт» и «дилерскую цену» — переход на оптовую ветку.
2 Посчитать цену и остаток Ставка по уровню из прайса или каталога, наличие — под конкретный объём, а не в общем виде.
3 Назвать условия Минимальная партия, способ отгрузки, ориентир по срокам — из инструкции, без обещаний по датам, которых там нет.
4 Передать менеджеру Отсрочка платежа, документы и спецификация, скидка сверх стандартного уровня — решения, которые требуют личной договорённости.

Файл со спецификацией или прайсом агент может прислать сам: отправка файлов клиенту работает как часть структурированных ответов, но это функция подписки «Интегратор». На остальных подписках агент называет условия текстом, а сам документ передаёт менеджер — рабочий обход простой и не требует переделки диалога.

Заведите одну таблицу до настройки самого агента

Заведите прайс с уровнями цен и остатком в отдельную таблицу до того, как настраивать логику диалога — без неё агенту нечего показывать при первом же вопросе о партии. Дальше добавляется дилерский уровень полем в CRM, а уже потом — вебхук в 1С, если остатки живут там, и функция отправки файлов, если она нужна и подписка это позволяет.

Начать стоит с одной оптовой переписки за прошлую неделю: посчитайте, сколько раз в ней звучало «а от какого объёма другая цена» и сколько раз ответ на этот вопрос требовал открыть три разных документа.

Частые вопросы

Как агент считает цену для оптового заказа

По прайсу с дилерскими уровнями: розница, опт от определённого объёма, отдельная ставка для дилера. Уровень клиента хранится полем сделки или тегом в CRM, а сама цена ищется в таблице по модели или артикулу.

Что делать, если клиент называет товар не так, как в прайсе

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

Можно ли завязать остатки на 1С, а не на таблицу

Да, если остатки живут именно там: на стороне 1С публикуется веб-сервис, а агент обращается к нему действием «Вебхук» по URL метода, с нужными заголовками и способом авторизации.

Отправит ли агент прайс или спецификацию файлом

Отправка файлов клиенту доступна как часть структурированных ответов, и это функция подписки «Интегратор». На остальных подписках агент даёт информацию текстом, а файл присылает менеджер.

Как часто обновляются остатки в Google-таблице

По умолчанию раз в 1440 минут, то есть раз в сутки, с кнопкой ручного обновления в любой момент. Чаще 30 минут ставить не рекомендуется: каждое обновление скачивает таблицу целиком, и частые запросы создают нагрузку на аккаунт Google.

Как агент отличает розничного покупателя от закупщика

По форме запроса, а не по обращению: розничный вопрос про одну позицию и её цену, оптовый сразу называет объём и просит дилерские условия. В инструкции для второго случая прописан переход к отсрочке, документам и подтверждению менеджером.

Команда платформы СаввиПишем о том, как бизнес внедряет ИИ-агентов, на данных платформы. Обновлено 16 сентября 2026.
BLOG500
Собрать агента