Ожидание ответа от пользователя Телеграмм бот на python

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

После этого вопроса бот не дожидается ответа, и проскакивает date = message.text, принимая за ответ предыдущее сообщение, и получается в итоге что-то такое "Задача Work добавлен на дату /add Work". Как сделать так, чтобы бот дождался ответа и не проскакивал?

Вот код:

    @bot.message_handler(commands = ["add", "random"])
def add_random(message):
    content = message.text.split(maxsplit = 1)
    if content[0] == "/add": #mesage.text -> /add <date> <task> || /add <task>
        command = message.text.split(maxsplit = 2)
        if len(command) == 3:
            date = command[1].lower()
            task = command[2]
            add_todo(date, task)
            text = "Задача " +  task + " добавлен на дату " + date
            bot.send_message(message.chat.id, text)
        elif len(command) == 2:
            bot.send_message(message.chat.id, "На какую дату поставить задачу??")
            date = message.text
            task = command[1]
            add_todo(date, task)
            text = "Задача " +  task + " добавлен на дату " + date
            bot.send_message(message.chat.id, text)
    elif content[0] == "/random":
        date = "сегодня"
        task = random.choice(random_task)``
        add_todo(date, task)
        text = "Задача " + task + " добавлен на дату " + date
        bot.send_message(message.chat.id, text)

Ответы (2 шт):

Автор решения: nickwaze

Отслеживать ввод даты юзером нужно в отдельном хэндлере, при этом зная, что он вводит именно дату. Делают это при помощи машины состояний - FSM

Вот пример из репозитория вашей библиотеки https://github.com/eternnoir/pyTelegramBotAPI/blob/master/examples/step_example.py

→ Ссылка
Автор решения: proffessor17

Чтобы бот дождался ответа, замени код внутри elif len(command) == 2: на функцию ниже ?

def process_date_step(message, task):
    date = message.text.lower()
    add_todo(date, task)
    text = "Задача " +  task + " добавлен на дату " + date
    bot.send_message(message.chat.id, text)

elif len(command) == 2:
    task = command[1]
    msg = bot.send_message(message.chat.id, "На какую дату поставить задачу??")
    bot.register_next_step_handler(msg, process_date_step, task)

и сам блок elif ?

→ Ссылка