Если вы хотите получить пользовательский ввод, логика c немного отличается. Я предполагаю, что вы используете longpolling.
Когда бот запрашивает ввод у пользователя, вы можете просто сохранить логическую строку / строку в глобальной переменной, предположим, что переменная user_input:
Вы получаете обновление и запрашивает ввод у пользователя, затем вы устанавливаете user_input [идентификатор пользователя] ['input'] = true
Затем, когда вы получаете другое обновление, вы просто проверяете эту переменную с помощью if (if user_input[userid]['input']: # do something
).
Если ваша проблема 403 Запрещена для «пользователь заблокировал бота», вы ничего не можете с этим поделать.