Я для своего бота
https://telegram.me/Weekendflybot сделал через хранение статуса в базе:
- при старте статус: 0
- Ввел и подтвердил город отправления: 1
- Ввел и подтвердил город назначения: 2
- Выбрал дату отправления: 3
- Выбрал дату возврата: 4 - он же результирующий статус для сценария поиска.
В любом месте ввел старт, start, /start - статус сбросился на 0 и пользователь может начинать новый поиск.