--- name: webask-quiz-from-brief description: "Собирает готовый опрос в WebAsk по описанию задачи на обычном языке. Применяется, когда человек просит сделать опрос, анкету, форму заявки, тест или квиз и описывает словами, что нужно узнать и у кого, вместо перечисления конкретных вопросов." --- # Сборка опроса по описанию Человек описывает задачу словами — «нужна анкета для клиентов автосервиса, оценить качество работ и собрать контакты для повторной записи». Задача: превратить это в работающий опрос, а не в список вопросов текстом. Отвечай человеку на том языке, на котором он пишет. Тексты самого опроса — на языке его аудитории, а не на языке этой инструкции. ## 1. Уточнить три вещи, если их не сказали Кого спрашиваем, что решаем по результатам, где будет ссылка. Больше трёх вопросов не задавать: остальное быстрее показать черновиком и поправить по замечаниям. Не спрашивать про типы вопросов, оформление и порядок — это работа ассистента, а не человека. ## 2. Проверить, нет ли готового `search_quiz_templates` по теме. Если подходящий шаблон есть — `create_quiz_from_template` и дальше правки: это быстрее и качественнее сборки с нуля. Шаблон предложить, но решение оставить за человеком. ## 3. Создать опрос и собрать вопросы `create_quiz`, затем `update_quiz_widgets`. Опрос создаётся в папке, поэтому сначала `get_folder_list` — взять папку, куда класть. Если папок несколько и человек не сказал куда, спросить, а не выбирать за него. Подбор типов — главная часть работы, здесь чаще всего ошибаются: | Что нужно узнать | Тип | Почему не иначе | |---|---|---| | Оценка качества | `rating` | не `input` с числом: по свободному тексту не построить сводку | | Готовность рекомендовать | `nps` | своя шкала 0–10 и своя аналитика в отчётах | | Выбор одного из списка | `dropdown` | не `input`: свободный текст не сгруппировать в отчёте | | Выбор нескольких | `dropdown` с множественным выбором | | | Имя | `fio` | разбор на части и правильная клавиатура на телефоне | | Телефон, почта | `phone`, `email` | своя проверка формата, иначе половина контактов нерабочие | | Дата и время | `datetime` | не текст: иначе не отфильтровать и не отсортировать | | Несколько оценок по одному набору | `matrix` | вместо десяти отдельных вопросов | | Файл или фото | `file` | | | Числовой ответ | `number` | | | Да или нет | `yesno` | | | Расставить по порядку | `ranking` | | Опрос начинать приветственным экраном `welcome`, заканчивать `finish` — без него респондент упирается в пустую страницу. Обязательными делать только контакты, ради которых опрос затевался. Каждый лишний обязательный вопрос — потерянные ответы. Полный список типов и их полей — в `references/widget-types.md`. Заглядывать туда, когда нужного типа нет в таблице выше. ## 4. Тексты и оформление `update_quiz_texts` — заголовки, подписи кнопок, текст благодарности. Писать живым языком аудитории, не переводом с английского и не канцеляритом. `get_theme_list` и `apply_quiz_theme` — взять готовую тему. Свою тему создавать только если человек прямо просит фирменные цвета. ## 5. Логика показа `update_quiz_logic`, если из описания следуют ветки: «недовольным — вопрос почему», «не пользовался услугой — пропустить блок оценок». Порядок работы строгий: сперва `get_quiz_structure`, затем правка, затем запись. Условия ссылаются на вопросы по идентификатору, и собранная вслепую логика уводит респондента в тупик. ## 6. Показать черновик и опубликовать `publish_quiz` — **только после согласия человека**. До публикации опрос недоступен по ссылке, и это правильное состояние для проверки. После публикации отдать ссылку и коротко перечислить, что получилось: сколько вопросов, какие обязательные, есть ли ветвление. ## Чего не делать - **Не публиковать без спроса.** Опубликованный опрос уже можно проходить, а правки после первых ответов ломают сравнение результатов. - **Не выдумывать вопросы «до кучи».** Длинные опросы не дочитывают: каждый вопрос должен отвечать на то, что человек назвал в задаче. - **Не делать всё обязательным.** - **Не предлагать смену тарифа**, если упёрлись в лимит опросов: назвать причину и остановиться. - **Не удалять и не переписывать чужие опросы**, если попросили сделать новый. ## Если описание большое Для длинных и сложных описаний есть `generate_ai_quiz` — сборка целиком в фоне. Она возвращает не готовый опрос, а признак, что работа началась: дождаться готовности, показать результат и дальше править обычными инструментами.