Перейти к содержимому

← Все статьиБоты и CRM

· ~1 мин чтения

Как подключить Telegram-бота к Google Sheets вместо базы данных

Частый сценарий: у малого бизнеса заявки уже ведутся в Google-таблице, сотрудники к ней привыкли, и предложение «давайте поставим CRM» встречает сопротивление — новый интерфейс, обучение, миграция истории. При этом ручной ввод из бота в таблицу — источник ошибок и дублей.

Таблица как источник истины

Решение — не заменять таблицу, а сделать её источником истины напрямую для бота. Google Sheets API позволяет читать и писать в таблицу из кода так же, как в обычную базу: получить диапазон строк, добавить строку, обновить ячейку по условию. Разница в скорости отклика и лимитах API, но для заявок малого/среднего бизнеса это не критично.

Как это устроено

Практическая схема: aiogram-бот принимает заявку → FastAPI-сервис валидирует данные → пишет строку в таблицу через Google Sheets API с сервисным аккаунтом (не через OAuth пользователя — так проще для продакшена и не зависит от чьей-то личной сессии). Статусы читаются оттуда же при каждом запросе или кэшируются на короткое время, если нагрузка выше — чтобы не упираться в квоты Google Sheets API.

Ограничения

Ограничения стоит проговаривать сразу: Google Sheets — не транзакционная БД, при высокой конкурентной записи возможны гонки состояний. Для одного менеджера и десятков заявок в день это не проблема. Если бизнес вырастет до сотен одновременных заявок — миграция на PostgreSQL с той же логикой займёт день, а не переписывание бота с нуля, если API-слой изначально спроектирован как отдельный сервис, а не завязан на структуру таблицы напрямую.

Когда такого компромисса достаточно

Для старта и небольшого объёма Google Sheets как бэкенд — не костыль, а осознанный компромисс между скоростью запуска и привычностью инструмента для команды. Условие одно: API-слой с самого начала живёт отдельным сервисом и не привязан к структуре таблицы — тогда переезд на PostgreSQL остаётся вопросом дня, а не переписыванием бота. Если ваша задача похожа — заявки уже ведутся в таблице, а команда не хочет от неё отказываться, — это типовой сценарий для CRM-интеграции без новой системы.

Связанные услуги

Читайте также

← Все статьи блога · Кейсы