# Опрос в чат-боте с начислением баллов

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

<figure><img src="/files/25c1c13c8d8e12d0b85bffd1f2bebd1b4139159e" alt="" width="563"><figcaption></figcaption></figure>

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

## Настройки сценария

Чтобы сделать опрос быстрее и проще, заранее подготовьте вопросы и ответы в обычном документе:

<figure><img src="/files/5cdc32338a4262bb2b7fad428a90cbf8e84b0f8b" alt=""><figcaption></figcaption></figure>

### Вход в опрос

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

<figure><img src="/files/ddbd95a6a38207bfa4ac2e85bea74609cf77e14e" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/825b6044bba58d5355b48ec4fd9597eada5b0675" alt=""><figcaption></figcaption></figure>

#### Автоматический переход

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

<figure><img src="/files/f73c6c57847019fae23116b4beea30aa39fe360a" alt=""><figcaption></figcaption></figure>

Запуск опроса по кнопке

Если вы хотите, чтобы пользователь начинал опрос нажатием кнопки, создайте соответствующие кнопки в стартовом блоке:

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

<figure><img src="/files/c43b3b0338a7e97b6316a04fe06300f1f1204532" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/7cea15b78d753d441a5f784bb87e6af7b0fe5187" alt=""><figcaption></figcaption></figure>

Перейдите в настройки стрелки и отметьте в условии галочкой кнопку:

<figure><img src="/files/555313c962cda9f85c691446a34656ac2f55e985" alt="" width="563"><figcaption></figcaption></figure>

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

Установите тип совпадения на "точное совпадение":

<figure><img src="/files/ad2f521b5032aca8fd108365481396cd6c8ca099" alt="" width="563"><figcaption></figcaption></figure>

### Настройки вопросов и ответов

Теперь перейдём к самой интересной части — настройке вопросов с ответами. Для этого вам понадобится заранее подготовленный сценарий с вопросами.

Шаг 1. В блоке, куда ведёт стрелка из стартового блока, вставьте первый вопрос из вашего сценария в поле сообщения:

<figure><img src="/files/63efac902d2ddebbd31c1adfd2e7c5ab4adacfe5" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/67683fc869a398cc1383478edcadc44d85c9ab65" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/85d1ba7b9042175eb6dd2cbebe6f9fc190b9fd3d" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
**Важно!**&#x20;

В Telegram нельзя использовать слишком длинные варианты ответа на кнопках.

Обходной путь для Telegram: полные ответы указывайте в тексте сообщения, а на кнопках используйте более короткий и лаконичный текст:

<img src="/files/e6a24a9bcc5743471d4b7476f29b8261e749d0e8" alt="" data-size="original">

Если варианты ответа на кнопках слишком длинные, возникнет следующая ошибка:

<img src="/files/19a20978ec5df2947e14e56f86e58ceb9d474b15" alt="" data-size="original">

Учитывайте максимальное количество символов для кнопок в Telegram.

Более длинные варианты ответов, например, можно использовать в онлайн-чате на сайте. <mark style="color:красный;">**ссылка**</mark>
{% endhint %}

Добавьте в блок нужное количество кнопок следующим образом:

<figure><img src="/files/076708d743a4e2527ba65954aeb1eb0cea2fcf59" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/096092d899ca0ff712fe7b93d56ae74669a51068" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/38dbe8abce56d19890030a2e466bc6450c3e787c" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/4983140962a66bad23e3b02ff18712bc51634919" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Условия стрелок должны соответствовать только одному конкретному варианту ответа клиента. Это значит, что в условии каждой стрелки должна быть выбрана ровно одна кнопка — первая стрелка связана с первой кнопкой, вторая — со второй и так далее.
{% endhint %}

Пример показывает, что каждой стрелке соответствует только одна кнопка:

<figure><img src="/files/1386dd0ba58ab3ce5037619672f33d16deba8dfb" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/65e518b51935af27783068e7f078b4f593bbf631" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/a95176d46931808c5469f029b0eb819f74d97200" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/4927683e1d048c755684f3eb75d7dd50e8580608" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/f997d328ce26e1496d3cb782148e145965edc741" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/d01159505648c5a9129b0920d5b52e2513194390" alt=""><figcaption></figcaption></figure>

Пример выше наглядно показывает повторяющиеся настройки блоков для вопросов. Именно так заполняются все вопросы и ответы.

Шаг 9. Нужно создать следующий блок вопроса. Для этого создайте блок "State" и соедините со стрелками к нему:

<figure><img src="/files/171ca1765b7e618b6c7e538e951c0a50c1a547f0" alt=""><figcaption></figcaption></figure>

Так создаётся блок третьего вопроса; теперь можно продолжать добавлять вопросы и ответы, следуя шагам 1–9, как описано выше.

{% hint style="success" %}
Проще и быстрее сначала создать все вопросы и варианты ответов, а затем назначить переменные для подсчёта баллов.\
Как начислять баллы во время опроса, объясняется далее.
{% endhint %}

### Как начислять баллы

Шаг 1. Перейдите в блок с первым вопросом:

<figure><img src="/files/33786577c72b34c4ab4df7ebda37f5133ccab94d" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/fa8d1720e5976aa03c76f2d5632e73c4ff9fdc5c" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/e8f9972942d9a331e98db06f019199a1fa1319c2" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/e7a3f403e8ec1f8e40c8e9a8a0285bb4e267002d" alt=""><figcaption></figcaption></figure>

Добавьте 4 балла в блоке, связанном с вариантом A.

<figure><img src="/files/55dd25079af57c320a542b2b85af5f379b2b64a9" alt=""><figcaption></figcaption></figure>

Добавьте 3 балла в блоке, связанном с вариантом B.

<figure><img src="/files/155511261e4cde6713c59dea7a16f7b87b8f7cda" alt=""><figcaption></figcaption></figure>

Добавьте 2 балла в блоке, связанном с вариантом C.

<figure><img src="/files/da72a545dc3588fad7fcdc365feff3262b418c24" alt=""><figcaption></figcaption></figure>

Добавьте 1 балл в блоке, связанном с вариантом D.

<figure><img src="/files/9d8e765da831466837ff8276212dd0fd708368d0" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/a623a0d1e4507965d7b1b0e064c52879dc25fd95" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Готово!\
Теперь вы создали сценарий чат-бота с вопросами и начислением баллов клиенту.
{% endhint %}

### Как показать результат?

**Вариант 1. Показать результат в виде текста:**

Вы можете показать результат с помощью переменной #{score} в финальном блоке, куда ведут стрелки от блоков начисления баллов:

<figure><img src="/files/34454d8a6187b747058074d9f4e828ffae76143f" alt=""><figcaption></figcaption></figure>

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

**Вариант 2. Калькулятор и оператор IF**

Если вы хотите показать более короткий и лаконичный результат, используйте калькулятор с функцией IF:

<figure><img src="/files/a88d87a892fdaa0b3f7111e2b95f282b3484449d" alt=""><figcaption></figcaption></figure>

Иными словами, нужно задать боту условия вида: <mark style="color:$warning;">**"если балл меньше 8, то ты меланхолик; если балл от 8 до 11 включительно, то ты флегматик,"**</mark> и так далее — но уже в синтаксисе системы.

Вот код, который можно скопировать:

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

Итоговый сценарий выглядит так:

<figure><img src="/files/a8ff3d42e14934208ae6cb981d801aa73823b453" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/6466b7cad1f8f2f31bc44f199576461d7dd26bf9" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/fb905528d500fe126abc7f8a8372b425ec455684" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="success" %}
Готово!\
Теперь вы знаете, как создавать опросы для мессенджеров в боте!
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/ru/kak-sdelat.../opros-v-chat-bote-s-nachisleniem-ballov.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
