Недавно делал Telegram бота на Google Spreadsheet и Google Apps Script. Там можно хранить данные
ключ-значение.
Когда приходит сообщение, известен id пользователя, который его написал. На основе этого id делается префикс для ключей, например, "TG_12345" где 12345 id пользователя.
Возможные диалоги описаны в словаре типа
{ "новый пользователь": [ // название диалога
{"propmt": "Введите ваше имя"}, // первый вопрос
{"propmt": "Введите email"}, // второй
{"propmt": "ник в телеграме"}, // третий
],
"ещё какой-то диалог":[/* вопросы */]
}
И хранить надо состояние диалога для текущего пользователя: название, номер шага и заполненные ранее ответы. Итого ключи могут быть такие:
TG_12345_DIALOG: "новый пользователь" // из словаря диалогов
TG_12345_STEP: 2 // текущий шаг, ожидаемый ответ
TG_12345_REPLY_0: "Иван Петров" // полученные ответы
TG_12345_REPLY_1: "ivan@mail.ru"