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

Например, вы можете использовать опрос в чат-боте для проверки знаний пользователей или для социологических и психологических исследований.
Настройки потока
Чтобы сделать опрос быстрее и проще, заранее подготовьте вопросы и ответы в обычном документе:

Вход в опрос
В конструкторе создайте блок с условием ("Стартовый блок" или "Несостояние с условием"), который будет служить отправной точкой для опроса:

В стартовом блоке, показанном в примере, есть только приветственное сообщение. Теперь нужно создать следующий блок под ним: для этого откройте меню дополнительных настроек и нажмите соответствующую кнопку:

Автоматический переход
Затем перейдите в настройки стрелки и установите таймер, чтобы первый вопрос отправлялся клиенту автоматически:

Запуск опроса по кнопке
Если вы хотите, чтобы пользователь начинал опрос нажатием кнопки, создайте соответствующие кнопки в стартовом блоке:
1. Перейдите в зеленый блок;
2. Нажмите "Кнопки", чтобы развернуть вкладку настроек;
3. Нажмите "+ Добавить кнопку":

Введите текст кнопки в открывшемся модальном окне, затем нажмите "Добавить кнопку":

Перейдите в настройки стрелки и установите флажок для кнопки в условии:

Этот шаг гарантирует, что клиент перейдет к следующему блоку только при определенном условии (в данном случае условием является текст кнопки).
Установите тип совпадения "точное совпадение":

Настройки вопросов и ответов
Теперь перейдем к самой интересной части — настройке вопросов с ответами. Для этого вам понадобится подготовленный сценарий с вопросами.
Шаг 1. В блоке, к которому ведет стрелка из стартового блока, вставьте первый вопрос из вашего сценария в поле сообщения:

Шаг 2. Затем создайте кнопки с вариантами ответов в зависимости от количества ответов (в примере будет 4 кнопки):

Шаг 3. В модальном окне настроек кнопки введите текст ответа и нажмите "Добавить":

Важно!
В Telegram невозможно использовать очень длинные варианты ответов на кнопках.
Обходной путь для Telegram: включите полные ответы в текст сообщения и используйте более короткий, лаконичный текст на кнопках:
Если варианты ответов на кнопках слишком длинные, возникнет следующая ошибка:
Учитывайте максимальное ограничение по символам для кнопок в Telegram.
Более длинные варианты ответов, например, можно использовать в онлайн-чате на веб-сайте. ссылка
Добавьте необходимое количество кнопок в блок таким образом:

Шаг 4. Откройте меню дополнительных настроек и создайте столько блоков, сколько у вас кнопок ответов на вопрос:

В примере создано четыре блока для четырех кнопок ответов:

Шаг 5. Перейдите в настройки стрелки и установите флажок для одной кнопки в условии:

Условия стрелок должны соответствовать только одному конкретному варианту ответа от клиента. Это означает, что в условии каждой стрелки должна быть выбрана ровно одна кнопка — первая стрелка связана с первой кнопкой, вторая стрелка со второй кнопкой и так далее.
В примере показано, что каждая стрелка соответствует только одной кнопке:

Шаг 6. Создайте блок ниже, к которому будут вести стрелки из четырех блоков ответов:

Шаг 7. Установите таймер на 0 секунд в настройках каждой стрелки, ведущей к одному и тому же блоку:

Шаг 8. Затем введите следующий вопрос в блоке, к которому ведут четыре стрелки:

Создайте варианты ответов в виде кнопок в блоке со вторым вопросом, как и раньше:

Теперь создайте четыре блока ниже из блока со вторым вопросом. В условиях стрелок, ведущих к этим блокам, укажите соответствующие варианты ответов — по сути, вы повторите шаги с 1 по 8: заполнение поля вопроса, создание необходимого количества кнопок ответов и настройка условий стрелок в соответствии с выбранными ответами.

В приведенном выше примере четко показаны повторяющиеся настройки блоков для вопросов. Так заполняются все вопросы и ответы.
Шаг 9. Вам нужно создать следующий блок вопроса. Для этого создайте блок "Состояние" и подключите к нему стрелки:

Так будет создан третий блок вопроса; теперь вы можете продолжать добавлять вопросы и ответы, следуя шагам 1–9, как описано.
Проще и быстрее сначала создать все вопросы и их варианты ответов, а затем назначить переменные для подсчета баллов.
Как начислять баллы во время опроса, объясняется далее.
Как начислять баллы
Шаг 1. Перейдите в блок с первым вопросом:

В калькуляторе объявите переменную — например, с именем "score" — и установите ее значение равным нулю:

Шаг 2. Перейдите в блок, к которому ведет стрелка от ответа, и откройте калькулятор:

Добавьте соответствующее количество баллов к переменной в калькуляторе в соответствии с вашим сценарием:

Добавьте 4 балла в блоке, подключенном к варианту A.

Добавьте 3 балла в блоке, подключенном к варианту B.

Добавьте 2 балла в блоке, подключенном к варианту C.

Добавьте 1 балл в блоке, подключенном к варианту D.

Сделайте то же самое для других блоков, к которым ведут стрелки ответов — добавьте баллы к переменной в зависимости от выбранного варианта ответа:

Готово!
Вы создали поток чат-бота с вопросами и начислением баллов клиенту.
Как отобразить результат?
Вариант 1. Отображение результата в виде текста:
Вы можете показать результат, используя переменную #{score} в финальном блоке, к которому ведут стрелки из блоков начисления баллов:

Таким образом, ваш пользователь сможет четко увидеть общее количество баллов, набранных во время опроса, и сравнить свои результаты.
Вариант 2. Калькулятор и оператор IF
Если вы хотите отобразить более короткий и лаконичный результат, используйте калькулятор с функцией IF:

Другими словами, вам нужно задать условия для бота, например: "если баллов меньше 8, то вы меланхолик; если баллов от 8 до 11 включительно, то вы флегматик", и так далее — но в синтаксисе системы.
Вот код, который вы можете скопировать:
text = if(score < 8,
"Вы меланхолик — застенчивый, чувствительный, склонный к размышлениям и переживаниям. У вас глубокая эмоциональность.",
if(score >= 8 and score <= 11,
"Вы флегматик: спокойный, уравновешенный и вдумчивый. Вы не любите суеты и предпочитаете стабильность.",
if(score > 11 and score < 21,
"Вы сангвиник: общительный, жизнерадостный и адаптируемый. Вы склонны относиться к вещам легко, но легко возбуждаетесь.",
"Вы холерик: энергичный, импульсивный, склонный к резким реакциям. Лидер, но иногда не хватает сдержанности."
)
)
)
Итоговый поток выглядит так:

Важно! Блоки с названием "Начисление баллов" с пустым сообщением #{none} используются исключительно для подсчета баллов.

Вот как работает бот:

Готово!
Теперь вы знаете, как создавать опросы для мессенджеров в боте!


