Валидация и попытки
Валидация — это проверка ответа клиента на соответствие типу поля. Если ответ не подходит, нода «Форма» показывает сообщение об ошибке и даёт клиенту повторить ввод. Это защищает ваши данные от мусора — телефонов из букв, email без «собаки», дат «когда-нибудь».
Как работает проверка
Форма проверяет каждый ответ по типу поля. Если клиент прислал значение, не подходящее под тип, бот не идёт дальше: он сообщает об ошибке и снова ждёт ответ на тот же вопрос.
| Настройка | Что задаёт |
|---|---|
| Сообщение об ошибке (invalidMessage) | Текст, который видит клиент, когда ответ не прошёл проверку. Например: «Кажется, это не похоже на номер телефона. Пришлите его в формате +7…». |
| Число попыток на поле (maxRetriesPerField) | Сколько раз клиент может ошибиться в одном поле, прежде чем форма перестанет переспрашивать. |
Сообщение об ошибке
Когда ответ не проходит валидацию, бот отправляет ваше сообщение об ошибке и снова показывает тот же вопрос. Чем понятнее текст, тем быстрее клиент исправится.
Пишите в сообщении об ошибке не «неверный ввод», а подсказку с примером правильного формата: «Укажите дату в виде 25.12 или 25 декабря». Так клиент сразу поймёт, чего от него ждут.
Число попыток на поле
Параметр «число попыток на поле» (maxRetriesPerField) ограничивает, сколько раз клиент может ошибиться в одном вопросе. Это нужно, чтобы диалог не зациклился, если клиент так и не присылает корректное значение.
Продумайте, что произойдёт, когда попытки на поле закончатся, а корректного ответа так и нет. Не оставляйте клиента в тупике — ведите его дальше или на запасную ветку, чтобы диалог не оборвался.
Как настроить
Откройте ноду «Форма»
На канвасе выберите ноду «Форма», в которой собираете данные.
Задайте тип каждому полю
Для полей с проверкой укажите строгий тип ответа — число, email, телефон или дата. По нему и будет идти валидация.
Напишите сообщение об ошибке
В поле invalidMessage введите понятный текст с примером правильного формата.
Укажите число попыток
Задайте maxRetriesPerField — сколько раз клиент может ошибиться в поле, прежде чем форма перестанет переспрашивать.
Проверьте в тесте
Запустите тестовый прогон и намеренно введите неверное значение — убедитесь, что бот показывает ваше сообщение и переспрашивает.
Когда применять
- Сбор телефона для заявки — тип «телефон» плюс сообщение об ошибке с примером формата отсекают опечатки и текст вместо номера.
- Запись на дату — валидация типа «дата» не пропустит ответ «как получится» и попросит указать конкретный день.
- Защита от случайных ответов — лимит попыток не даёт диалогу зациклиться, если клиент упорно вводит не то.
Пример
Форма брони столика. Поле «Сколько гостей?» имеет тип число и сообщение об ошибке «Укажите число гостей цифрой, например 4». Клиент пишет «много» — бот показывает это сообщение и переспрашивает. Параметр maxRetriesPerField задаёт, сколько таких переспросов будет, прежде чем форма пойдёт дальше или на запасную ветку.