Валидация и попытки

Валидация — это проверка ответа клиента на соответствие типу поля. Если ответ не подходит, нода «Форма» показывает сообщение об ошибке и даёт клиенту повторить ввод. Это защищает ваши данные от мусора — телефонов из букв, email без «собаки», дат «когда-нибудь».

Как работает проверка

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

НастройкаЧто задаёт
Сообщение об ошибке (invalidMessage)Текст, который видит клиент, когда ответ не прошёл проверку. Например: «Кажется, это не похоже на номер телефона. Пришлите его в формате +7…».
Число попыток на поле (maxRetriesPerField)Сколько раз клиент может ошибиться в одном поле, прежде чем форма перестанет переспрашивать.

Сообщение об ошибке

Когда ответ не проходит валидацию, бот отправляет ваше сообщение об ошибке и снова показывает тот же вопрос. Чем понятнее текст, тем быстрее клиент исправится.

Пишите в сообщении об ошибке не «неверный ввод», а подсказку с примером правильного формата: «Укажите дату в виде 25.12 или 25 декабря». Так клиент сразу поймёт, чего от него ждут.

Число попыток на поле

Параметр «число попыток на поле» (maxRetriesPerField) ограничивает, сколько раз клиент может ошибиться в одном вопросе. Это нужно, чтобы диалог не зациклился, если клиент так и не присылает корректное значение.

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

Как настроить

  1. Откройте ноду «Форма»

    На канвасе выберите ноду «Форма», в которой собираете данные.

  2. Задайте тип каждому полю

    Для полей с проверкой укажите строгий тип ответа — число, email, телефон или дата. По нему и будет идти валидация.

  3. Напишите сообщение об ошибке

    В поле invalidMessage введите понятный текст с примером правильного формата.

  4. Укажите число попыток

    Задайте maxRetriesPerField — сколько раз клиент может ошибиться в поле, прежде чем форма перестанет переспрашивать.

  5. Проверьте в тесте

    Запустите тестовый прогон и намеренно введите неверное значение — убедитесь, что бот показывает ваше сообщение и переспрашивает.

Когда применять

  • Сбор телефона для заявки — тип «телефон» плюс сообщение об ошибке с примером формата отсекают опечатки и текст вместо номера.
  • Запись на дату — валидация типа «дата» не пропустит ответ «как получится» и попросит указать конкретный день.
  • Защита от случайных ответов — лимит попыток не даёт диалогу зациклиться, если клиент упорно вводит не то.

Пример

Форма брони столика. Поле «Сколько гостей?» имеет тип число и сообщение об ошибке «Укажите число гостей цифрой, например 4». Клиент пишет «много» — бот показывает это сообщение и переспрашивает. Параметр maxRetriesPerField задаёт, сколько таких переспросов будет, прежде чем форма пойдёт дальше или на запасную ветку.