---
name: webask-quiz-logic
description: Настраивает логику показа вопросов в опросе WebAsk — ветвление,
  пропуск блоков, отсев неподходящих респондентов и квоты. Применяется, когда
  человек хочет показывать разные вопросы разным людям или жалуется, что опрос
  ведёт респондента не туда.
---

# Ветвление и маршруты

Логика — самое частое место молчаливой поломки: условие ссылается на вопрос по
идентификатору, и собранная вслепую ветка уводит респондента в тупик, откуда нет
выхода.

Отвечай человеку на том языке, на котором он пишет.

## Порядок работы строгий

1. `get_quiz_structure` — получить текущее состояние и идентификаторы вопросов.
2. Собрать изменения на основе того, что реально есть в опросе.
3. `update_quiz_logic` — записать.

Пропускать первый шаг нельзя. Идентификаторы не угадываются, а запись поверх
несуществующих вопросов даёт опрос, который не открывается.

## Что можно построить

- **Ветка по ответу.** «Поставил оценку ниже четырёх — спросить почему».
- **Пропуск блока.** «Не пользовался услугой — не спрашивать о её качестве».
- **Отсев.** Респондент не подходит под исследование — увести его на экран
  `screenout`, а не гнать до конца и потом чистить ответы.
- **Квоты.** Набрали нужное число ответов в группе — дальше её не пускать.

## Правила, о которые спотыкаются

- **У каждой ветки должен быть выход.** После последнего вопроса ветки — переход к
  следующему блоку или к завершению.
- **Условие «ответ = Другое»** работает по варианту «Другое», а не по тексту,
  который респондент туда вписал.
- **Оператор должен подходить типу вопроса.** «Больше» и «меньше» — для чисел и
  шкал, не для текста и не для выбора.
- **Порядок условий важен**: сработает первое подошедшее.
- **Ветка не должна вести назад** к уже пройденному вопросу — респондент попадёт в
  круг.

## После правки

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

## Чего не делать

- **Не записывать логику без чтения структуры.**
- **Не менять состав вопросов заодно с логикой** — это разные правки, и при
  ошибке непонятно, что сломалось.
- **Не строить ветвление там, где хватит одного вопроса с вариантами.**
- **Не предлагать смену тарифа и не вести на оплату.** Если упёрлись в лимит —
  назвать факт и остановиться.

