Телеграм вміє з Вами погутарити, якщо його навчити 🙂
Не одразу зрозумів як воно працює. Зараз, трохи почав розуміти. Як зрозумів – запишу а далі зміню-доповню якщо помилявся. Демонструю на прикладі що буде у самому низу сторінки.
 Точка входу у розмову start_handler повертає статус розмови до якого треба перейти далі (return NAME) розмову припиняємо коли викликаємо функцію що повертає такий статус (return ConversationHandler.END)
from telegram.ext import ConversationHandler
NAME, PEOPLE_TYPE, WORKPLACE = range(3)
from ask.validators import WORKER_TYPES_MAP
@debug_requests
 def start_handler(update: Update, context: CallbackContext):
 .......багато..неважливого...тексту........
 return NAME
@debug_requests
 def name_handler(update: Update, context: CallbackContext):
     # отримати ім"я
     context.user_data[NAME] = update.message.text
     logger.info('user_data: %s', context.user_data)
    # спитати наступне питання
     inline_buttons = InlineKeyboardMarkup(
         inline_keyboard=[
             [InlineKeyboardButton(text=value, callback_data=key) for key, value in \
 WORKER_TYPES_MAP.items()],
             ],
           )
     update.message.reply_text(
         text='введіть посаду співробітника',
         reply_markup=inline_buttons,
         )
 return PEOPLE_TYPE
 
@debug_tg
 def cancel_handler(update: Update, context: CallbackContext):
     """ Cancel dialog. Cancel data
     """
     update.message.reply_text('Cancel. For start over run command /start')
     return ConversationHandler.END
def main():
         logger.info('Started ask-bot')
        req = Request(
                         connect_timeout=0.3,
                         read_timeout=1.0,
                         )
             bot = Bot(
                         token=config.TG_TOKEN,
                         request=req,
                         base_url=config.TG_API_URL,
                         )
            updater = Updater(
                         bot=bot,
                         use_context=True,
                         )
            # перевірка підключення до Telegram API
             info = bot.get_me()
             logger.info(f'Bot info: {info}')
             # обробляємо команди розмови
             conv_handler = ConversationHandler(
                     entry_points=[
                                 CallbackQueryHandler(start_handler, pass_user_data=True),
                                 ],
                             states={
                                         NAME: [
                                                     MessageHandler(Filters.all, name_handler, pass_user_data=True),
                                                     ],
                       PEOPLE_TYPE: [
                                                     CallbackQueryHandler(type_handler, pass_user_data=True),
                                                     ],
                          WORKPLACE: [
                                                     MessageHandler(Filters.all, finish_handler, pass_user_data=True),
                                                     ],
                                                 },
                                     fallbacks=[
                                                 CommandHandler('cancel', cancel_handler),
                                  ],
 }
              )
  updater.dispatcher.add_handler(conv_handler)
 updater.dispatcher.add_handler(CommandHandler('start',start_buttons_handler))
 updater.dispatcher.add_handler(MessageHandler(Filters.all, echo_handler))
  # Запускаю бота в роботу
  updater.start_polling()
  updater.idle()
  logger.info('Stopped ask-bot')
література
1 https://bitbucket.org/vkasatkin/tele_bot/src/master/anketa