Многошаговый диалог
Многошаговый диалог позволяет собирать данные от пользователя последовательно: имя, телефон, адрес и другую информацию. Каждый шаг ожидает ответ пользователя перед переходом к следующему.
Принцип работы
Ключевая функция — register_next_step. Она указывает, какой шаг обработает следующее сообщение пользователя.
Шаг 1: вопрос → register_next_step(2)
Шаг 2: сохранить ответ → вопрос → register_next_step(3)
Шаг 3: сохранить ответ → итог
Пример: форма заказа
Шаг 1: Запрос имени
send_message: "Давайте оформим заказ. Как вас зовут?"
register_next_step: 2
Шаг 2: Сохранение имени, запрос товара
add_var: name = {=message=}
send_message: "Отлично, {=name=}! Какой товар вас интересует?"
register_next_step: 3
Шаг 3: Сохранение товара, запрос адреса
add_var: product = {=message=}
send_message: "Укажите адрес доставки:"
register_next_step: 4
Шаг 4: Подтверждение
add_var: address = {=message=}
send_message: "Проверьте данные заказа:
Имя: {=name=}
Товар: {=product=}
Адрес: {=address=}
Все верно?
{buttons:[[Подтвердить] [Отменить]]}"
Валидация ответов
Добавьте условия для проверки ввода:
if "{=message=}" == ""
→ send_message: "Пожалуйста, введите ваше имя"
→ register_next_step: 2 // повторить шаг
else
→ add_var: name = {=message=}
→ следующий вопрос
Советы
- Нумеруйте шаги последовательно (1, 2, 3...)
- Показывайте пользователю прогресс: «Шаг 2 из 4»
- Добавляйте кнопку «Отмена» на каждом шаге
- Сохраняйте собранные данные в базу данных или отправляйте в CRM