Каким образом можно будет отследить, когда пользователь бездействует 15 минут и отправить ему напоминание
Как только начался диалог бота с пользователем (работа с состоянием):
- Записываете в базу
id пользователя,
id состояния и
время.
- С каждым ответом пользователя (шагом по состоянию) обновляете в базе
id состояния и
время пользователя.
В в другом потоке:
- Проверяете все незавершенные диалоги (по id состояния), отправляем непонимание, если
время превышает 5 минут (текущее время - время с базы).
Вроде понятно расписал.