Как сделать бота для проведения опросов в Telegram

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

Собственный бот-опросник решает эту проблему. Он позволяет сегментировать базу подписчиков по их ответам, выдавать персональные результаты тестов, блокировать доступ к контенту до прохождения голосования и собирать чистую статистику в CRM или Google Таблицы. В этой инструкции мы разберем, как создать такого бота без навыков программирования.

Зачем нужен отдельный бот вместо стандартной функции /poll

Прежде чем переходить к настройке, важно понять преимущества индивидуального решения:

  • Сбор контактов. Вы можете настроить сценарий так, что пользователь сначала оставляет номер телефона или почту, и только потом получает доступ к голосованию.
  • Сегментация. Ответы сохраняются в карточку пользователя. Если человек выбрал вариант «Интересует тариф Premium», ваш менеджер увидит это при следующем диалоге.
  • Ветвление сценария. После выбора варианта «Да» бот отправляет одну ссылку, после «Нет» — совершенно другую информацию.
  • Контроль хода опроса. Вы сами решаете, показывать ли пользователю проценты голосов сразу после нажатия кнопки или скрыть результаты до конца голосования.

Этап 1. Регистрация базового бога

Любой интерактив начинается с получения API-токена через официального помощника @BotFather.

  1. Найдите @BotFather в поиске Telegram (убедитесь, что у аккаунта есть синяя галочка верификации).
  2. Отправьте команду /newbot.
  3. Придумайте имя (например, «Опросы нашего канала») и уникальный юзернейм, который обязательно заканчивается на bot (например, mychannel_poll_bot).
  4. Сохраните полученный токен. Это ключ доступа, который нельзя передавать посторонним.

Этот скелет пока ничего не умеет. Чтобы он начал задавать вопросы, нужно прописать логику его поведения.

Способ 1. Использование конструкторов (визуальный путь)

Конструкторы чат-ботов позволяют собрать опрос мышкой, соединяя блоки между собой. Это самый быстрый способ запустить голосование для администратора канала или владельца магазина.

Создание команды /start

Первое сообщение видит пользователь после запуска. Оно должно объяснять правила. Пример: «Привет! Этот короткий тест поможет нам подобрать идеальный продукт под ваши задачи. Выберите один наиболее подходящий вариант ответа на каждом шаге». Здесь же настраивается кнопка «Начать опрос».

Проектирование первого вопроса

После нажатия кнопки бот должен отправить текст вопроса. В интерфейсе конструктора создается новый экран:

  • Текст сообщения: «Как часто вы пользуетесь нашим сервисом?»
  • Ниже добавляются варианты ответов в виде кнопок.

Настройка клавиатуры: Inline vs Reply-кнопки

Для опросов критически важно использовать правильный тип кнопок:

  • Reply-кнопки (клавиатурные): появляются в поле ввода текста вместо буквенной клавиатуры. Пользователю достаточно нажать на них. Они удобны для простых «Да/Нет».
  • Inline-кнопки: располагаются непосредственно под текстом сообщения бота. Это стандарт для всех современных квизов. При нажатии на такую кнопку бот мгновенно получает сигнал (callback_data), понимает выбор пользователя и присылает следующий вопрос, не засоряя чат сообщениями от самого участника.

Ветвление сценария

Это главная ценность бота. В конструкторе вы рисуете связи:

  1. От Варианта А («Ежедневно») стрелка ведет к Вопросу №2 про специфические функции.
  2. От Варианта Б («Раз в месяц») стрелка ведет к вопросу о причинах редкого использования. Так вы создаете динамический диалог, где каждый участник проходит свой уникальный путь в зависимости от интересов.

Способ 2. Самописный бот (технический обзор)

Если вам нужна уникальная логика, которую не поддерживает конструктор (например, сложная математическая обработка баллов), пишется код. Чаще всего используется Python и библиотека python-telegram-bot.

Библиотеки и работа с CallbackQuery

Когда пользователь нажимает inline-кнопку, сервер Telegram присылает вашему скрипту объект CallbackQuery. Внутри него зашита переменная callback_data. Именно она говорит программе, какую кнопку нажали. Например, для кнопки «Вариант 1» вы задаете data="ans_1". Скрипт ловит этот ID и запускает функцию отправки следующего шага.

Хранение ответов

Чтобы статистика не потерялась при перезагрузке сервера, ответы лучше записывать в легкую базу данных SQLite. Структура таблицы проста: [ID_пользователя] | [Текст_вопроса] | [Выбранный_вариант] | [Дата_времени]. Это позволит позже выгрузить Excel-файл со всеми результатами.

Типы интерактивного контента

Бот может проводить разные виды интерактива. Важно выбрать правильный формат под вашу задачу.

Классическое голосование

Цель: узнать мнение большинства. Обычно предполагает выбор одного или нескольких вариантов из предложенных. В боте такой опрос удобен тем, что можно сделать его обязательным этапом перед получением какой-либо услуги.

Викторины и тесты

Цель: обучение или развлечение. В этом режиме вы помечаете один из вариантов как «правильный».

  • Особенности настройки:
    • Можно включить таймер (на ответ дается 15 секунд).
    • Можно начислять баллы за скорость ответа.
    • В конце бот выводит итоговый счет: «Вы ответили правильно на 7 из 10 вопросов. Ваш результат — Эксперт». Для этого скрипт суммирует правильные callback_data в оперативной памяти сессии пользователя.

Опросы с вводом текста

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

Куда отправлять данные (аналитика)

Просто видеть цифры внутри админки конструктора мало для серьезного проекта. Данные нужно куда-то агрегировать.

Просмотр во внутренней статистике

Почти все платформы-конструкторы имеют раздел «Лиды» или «Статистика сценариев». Там отображаются воронки: сколько людей начали опрос, сколько бросили на середине, какие варианты самые популярные.

Экспорт в Google Таблицы

Самый популярный метод для малого бизнеса. Через модуль интеграции (обычно встроенный в конструктор) каждая новая анкета падает новой строкой в таблицу. Удобство в том, что вы можете настроить фильтры: например, автоматически отделить всех, кто интересуется доставкой, в список для SMS-рассылки.

Передача в CRM-систему

Для отделов продаж опрос становится инструментом квалификации. Если клиент в боте ответил, что его бюджет «Более 100 000 рублей», сделка в amoCRM или Битрикс24 может автоматически создаваться с тегом «Горячий лид» и назначаться старшему менеджеру.

Частые ошибки при создании опроса

  1. Отсутствие кнопки «Задать вопрос человеку». Если пользователь не находит подходящего варианта ответа в вашем жестком списке, он оказывается в тупике. Всегда оставляйте ветку диалога с выходом на живого оператора.
  2. Слишком длинные тексты вопросов. Экран смартфона мал. Если вопрос занимает больше трех строчек, конверсия в клик по кнопке резко падает. Дробите сложную информацию на несколько коротких шагов.
  3. Игнорирование кириллических доменов и спецсимволов. Если в вариантах ответов используются эмодзи или ссылки вида сайт.рф, убедитесь, что ваша база данных или конструктор корректно сохраняют UTF-8 кодировку, иначе вместо текста придут знаки вопроса.
  4. Мертвые уведомления. Если вы настроили мгновенное оповещение администратору о прохождении теста, но делаете это в общий шумный чат, уведомление потеряется. Создайте приватную группу только для алертов от ботов.
  5. Отсутствие экрана «Спасибо». После последнего вопроса опрос просто обрывается. Обязательно добавьте финальное сообщение с благодарностью и информацией о том, когда будут подведены итоги.

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

Можно ли сделать опрос полностью анонимным? Да. Если вы используете самописный скрипт или правильно настроенный конструктор, вы можете сохранять только факт выбора варианта, удаляя ID пользователя. Однако помните: если опрос проводится внутри вашего личного бота, абсолютной анонимности нет, так как владелец бота технически имеет доступ к истории переписки.

Сколько стоит содержать такого бота? Само создание бесплатно (если писать код самому). Платформы-конструкторы берут от 0 до 1000–1500 рублей в месяц в зависимости от количества активных пользователей. Основной расход здесь — ваше время на продумывание логики.

Может ли бот удалять чужие сообщения в группе после голосования? Нет. По правилам безопасности Telegram Bot API, боты не могут удалять сообщения обычных пользователей в группах, даже если они являются администраторами. Они могут управлять только своими собственными сообщениями.

Есть ли лимит на количество участников? Технических ограничений со стороны Telegram на количество проголосовавших нет. Ограничения накладывают лишь тарифы конструкторов (лимиты на количество сообщений/сценариев в сутки) или мощность вашего сервера, если код написан самостоятельно.

Как привлечь людей к участию? Лучшая механика — инлайн-режим. Пользователь пишет в любом чате @username_вашего_бота, и тот выдает окно опроса поверх текущего диалога. Также эффективно закреплять пост в канале с кнопкой «Принять участие», которая запускает сценарий в личке.

Заключение

Создание бота для опросов — это переход от простого информирования к полноценному диалогу с аудиторией. Вы перестаете быть просто вещателем и начинаете слушать своих клиентов. Начните с простого одноэкранного теста в визуальном конструкторе, проанализируйте первые сто ответов и постепенно усложняйте логику, превращая обычный опрос в мощный инструмент сегментации вашей базы.

Как в Телеграм