Динамические кнопки + AI-интеграция. Кейс от Алексея Санкина

7 июля 2026 г. · Алексей Санкин
Эксперт по чат-ботам для бизнеса, экспертов и ивентов, автоматизатор
Задача
Представим интернет-магазин рюкзаков и сумок, в котором представлено 15 моделей. Показывать все варианты сразу — плохая идея. Сообщение становится слишком длинным, а кнопки с названиями моделей не помещаются и мало что говорят пользователю.
Кроме того, большое количество вариантов часто приводит к обратному эффекту: человеку становится сложно сделать выбор, и вместо покупки он просто закрывает диалог.
Как будем решать
Гораздо эффективнее сначала узнать предпочтения пользователя, а затем предложить только 2–4 наиболее подходящие модели.
Соберём схему чат-бота, в котором интеграция с AI Assistant проанализирует ответы пользователя и подберёт наиболее подходящие модели, а затем Сенлер автоматически сформирует для них динамические кнопки, чтобы пользователь увидел только релевантные варианты, а не весь каталог. При желании всегда можно добавить кнопку «Посмотреть весь ассортимент».
Результат
Мы получим чат-бота, который рекомендует пользователю только те модели, которые с высокой вероятностью ему подойдут. При этом стоимость одного такого подбора через нейросеть составляет меньше 1 рубля.
Пользователь не теряется в большом ассортименте, а получает персональную подборку из нескольких моделей. Это делает общение с ботом более естественным и помогает быстрее привести клиента к покупке.
Начинаем!
1. Интеграция с AI Assistant
Стартуем с середины бота, чтобы сразу определить основное рабочее ядро – 2 блока интеграции с нейросетями.
Первый обрабатывает результат опроса и выдает варианты подходящих моделей исходя из ответов.
Интеграцию делаем через ProxiApi. Пусть и будет небольшая переплата, зато избегаем проблем с доступами и оплатами OpenAI. Запрос одиночный, длинных диалогов не выстраиваем, а описание ассортимента небольшое. Следовательно, описание ассортимента добавляем в инструкцию, а не крепим отдельным файлом.
На входящее сообщение подаем переменную {%bag_dialog%}. В нее предварительно будем собирать опрос пользователя в формате вопрос-ответ.
Ответ от нейросети сохраняем в переменную bag_gpt_1.
У нее в дальнейшем две задачи:
именно этот текст получит пользователь в качестве предложения;
содержание будет передано во вторую интеграцию нейросети для формирования JSON динамических кнопок.
Второй обработчик принимает на вход переменную bag_gpt_1 и формирует готовый JSON согласно правилам динамических кнопок. В нем указаны названия выбранных моделей – только названия, чтобы было видно. Для того, чтобы нейросеть не придумывала лишнее, перечисляем все модели в инструкции и велим использовать только их.
На выход отдаем переменную bag_gpt_2. Её необходимо будет разместить в настройках динамических кнопок.
Важно: в обоих блоках проставляю ожидание выполнения вебхука. Иначе выходные переменные будут неактуальными.
Для того, чтобы пользователь видел, что идет подбор, а не просто все зависло, проставляю связку сообщение-удаление с текстом «ожидайте» и т.п.
2. Формирование сообщения и динамические кнопки
Теперь необходимо сформировать сообщение для пользователя и предоставить ему выбор прохода по кнопкам.
В тело сообщения добавляем переменную bag_gpt_1.
А в кнопки — bag_gpt_2.
Осталось обработать результат нажатия. Здесь приходится делать набор проверок через блок условия. Можно, конечно, разместить это все в одном блоке и дать различные ветки, но для быстроты делаем одиночные и просто копируем.
В сообщении даем возможность пользователю перейти к покупке и вернуться к сообщению с выбором.
3. Опрос пользователя в начале сценария
Создаем 7 сообщений с вопросами.
5 закрытых, с вариантами ответов;
2 открытых.
Ответы сохраняем не в разные переменные, а в 1 переменную: сначала вопрос, а затем вариант, который выбрал человек, или то, что он написал. Причина – для краткости передачи данных в блок с нейросетью.
Если бы мы подготовили 7 переменных и разметили бы все это в блоке нейросети, то при малейших изменениях сценария опроса – добавлении или сокращении количества вопросов, изменении формулировок и т.д. пришлось бы менять как сценарий этапа 1, так и настройки блока интеграции. А так избегаем второго.
Кнопки в вопросах также делаем динамическими. Это опять же ускоряет процесс копирования. Сами строки JSON создаем одним запросом в любой текстовой нейросети – в моем случае ChatGPT. И просто копируем строчки, а не меняем названия 25 кнопок вручную. Тем более здесь нужно просто сохранение ответа, а не выбор пути в зависимости от нажатия.
Что ещё можно доработать
Пустить ветку дожима в случае, если человек после предложения не купил, и предложить ему другие варианты. Возможно весь модельный ряд.
Поставить проверку через регулярное выражение: соответствует ли JSON правилам. На всех тестах, которые были проведены, нейросеть ни разу не ошиблась и кнопки формировались как нужно. Но вдруг...
7 июля 2026 г. · Алексей Санкин