Если вы используете обычную клавиатуру, не inline, то советую посмотреть в сторону метода
register_next_step_handler() В интернете полно примеров использования, в том числе на этом ресурсе.
Но мало где описывается, что помимо объекта сообщения и объекта функции этот метод принимает аргументы, которые в эту функцию передает.
Пример такого использования можете посмотреть
тут