При переходе в модуль “Заявка” выполняется проверка: было ли ранее начато оформление заявки.
Если условие выполняется, то осуществляется мгновенный переход в шаг, на котором было завершено действие.
Если условие не выполняется и начатых заявок нет, то бот информирует пользователя, что впереди его ждет несколько вопросов. В первом шаге идет уточнение имени, если имя известно, осуществляется переход ко второму шагу.
Если пользователь новый и имя неизвестно, бот предложит представиться. В данном модуле используется modal для ограниченияобработки запроса, что бы не сработали глобальные интенты.
Введенное имя сверяется со справочником имен, если имя совпало, оно сохраняется и осуществляется переход ко второму шагу. Если имя не совпало, бот уточнит правильность у пользователя и после подтверждения сохранит имя и перейдет ко второму шагу.
Если пользователь не хочет представляться, бот сообщит, что без данной информации не получится продвинуться дальше и предложит повторить попытку, но если получит повторный отказ, предложит завершить оформление заявки. Данная проверка реализована через счетчик попыток.
Во втором шаге узнаем номер телефона пользователя. Если номер уже известен переходим к третьему шагу. Если номер не известен, просим пользователя его ввести в определенном формате. Введенный номер проверяется с помощью регулярного выражения в паттерне:
Позволяет принять телефонный номер с любой группировкой цифр, это удобно для пользователей “красивых” номеров и номеров с кодами городов не только из 3-х цифр.
Распознанный номер сохраняется и осуществляется переход к третьему шагу.
Если номер не распознан, просим ввести еще раз.
При отказе пользователя вводить номер телефона предупреждаем, что без номера не удастся оформить заявку и повторяем просьбу. При получении повторного отказа предлагаем отменить оформление заявки. Данная проверка реализована через счетчик попыток.
Реализация запросов пользователя погоды или желания выйти из диалога была осуществлена использованием тега go!
В ситуации, если пользователь попал в шаг 2 из шага 9 для корректировки номера телефона, после произведенных изменений, он будет возвращен обратно к шагу 9.
С третьего шага действия не являются обязательными и, если пользователь не захочет или не сможет дать ответы на спрашиваемые вопросы, он все равно сможет завершить оформление заявки.
В третьем шаге пользователю предлагается ввести дату начала поездки, если он ее вводит, сохраняем информацию и переходим к следующему шагу.
В четвертом шаге бот уточняет длительность поездки, ответ предлагается выбрать из предложенных на кнопках.
В пятом шаге спрашиваем количество человек планирующих отправится в поездку, уточняем сколько из них дети. Сохраняем ответ и переходим к шестому шагу.
В 6 шаге спрашиваем бюджет, на который рассчитывает пользователь, на одного человека. Ответ предлагается выбрать из предложенных на кнопках. Сохраняем ответ и переходим к седьмому шагу.
В седьмом шаге уточняем у пользователя уровень отеля (количество звезд). Ответ предлагается выбрать из предложенных на кнопках. Сохраняем ответ и переходим к восьмому шагу.
В восьмом шаге у пользователя есть возможность оставить комментарий к своей заявке. В данном стейте так же используется modal.
Далее осуществляется переход к 9 шагу.
В девятом шаге формируем заявку и подтверждаем у пользователя.
С помощью кнопок пользователь может подтвердить или перейти к изменению заявки. В зависимости от выбранного параметра пользователь будет перемещен в шаг, отвечающий за выбранное изменение.
В десятом шаге формируем письмо, в котором заявка от пользователя и отправляем на предусмотренную почту
В случае успешного завершения отправки письма, информируем пользователя об этом и прощаемся. Если произошел сбой и письмо не отправилось, также информируем об этом пользователя и предлагаем для оформления тура связаться по предложенному номеру телефона. Затем прощаемся.
Want to print your doc? This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (